1. Evan Laforge is going to present his Haskell project (music sequencer) and reflect upon his experiences in writing a non-trivial application in Haskell (20k lines of Haskell, 5k lines of C++). 2. Vlad Patryshev is going to show an example of using comonads in Haskell.
As far as I understand, no “deep knowledge” of Haskell is required for this meeting, so even if you have just started trying Haskell out, please come to the meeting!
Some people will be going from the South Bay (and probably East Bay) to the meeting and back, so there's a possibility of carpooling. Also, it's very easy to get to Engine Yard from the Caltrain station. Please send me a message if you need help figuring out transportation.
Please forward this email to those who may be interested in attending but are not present in To/Cc fields and the respective lists. Please remove CCs if you decide to reply to this email. If you plan to attend, please subscribe to BAHaskell Google Group<http://groups.google.com/group/bahaskell>to follow all the discussions related to this meeting.
> 1. Evan Laforge is going to present his Haskell project (music > sequencer) and reflect upon his experiences in writing a non-trivial > application in Haskell (20k lines of Haskell, 5k lines of C++). > 2. Vlad Patryshev is going to show an example of using comonads in > Haskell.
> As far as I understand, no “deep knowledge” of Haskell is required for this > meeting, so even if you have just started trying Haskell out, please come to > the meeting!
> Some people will be going from the South Bay (and probably East Bay) to the > meeting and back, so there's a possibility of carpooling. Also, it's very > easy to get to Engine Yard from the Caltrain station. Please send me a > message if you need help figuring out transportation.
> Please forward this email to those who may be interested in attending but > are not present in To/Cc fields and the respective lists. Please remove CCs > if you decide to reply to this email. > If you plan to attend, please subscribe to BAHaskell Google Group<http://groups.google.com/group/bahaskell>to follow all the discussions related to this meeting.
> Some people will be going from the South Bay (and probably East Bay) to the > meeting and back, so there's a possibility of carpooling. Also, it's very > easy to get to Engine Yard from the Caltrain station. Please send me a > message if you need help figuring out transportation.
Anyone coming from or going through Mountain View? Email if you are and could give me a ride. Otherwise I can take the train, but a ride is more fun...
> > Some people will be going from the South Bay (and probably East Bay) to > the > > meeting and back, so there's a possibility of carpooling. Also, it's very > > easy to get to Engine Yard from the Caltrain station. Please send me a > > message if you need help figuring out transportation.
> Anyone coming from or going through Mountain View? Email if you are > and could give me a ride. Otherwise I can take the train, but a ride > is more fun...
I'll be heading to Mountain View after the meeting, so if there's an empty car seat going that way I'd be happy to fill it. Otherwise the train works fine.
Dave
On Jan 11, 3:11 pm, Vlad Patryshev <vpatrys...@gmail.com> wrote:
> > > Some people will be going from the South Bay (and probably East Bay) to > > the > > > meeting and back, so there's a possibility of carpooling. Also, it's very > > > easy to get to Engine Yard from the Caltrain station. Please send me a > > > message if you need help figuring out transportation.
> > Anyone coming from or going through Mountain View? Email if you are > > and could give me a ride. Otherwise I can take the train, but a ride > > is more fun...
On Sun, Jan 10, 2010 at 10:39 PM, Ivan Tarasov <ivan.tara...@gmail.com> wrote: > As per discussion in BAHaskell google group:
> BAHUG is meeting on Monday, January 18th at 7pm at Engine Yard (SOMA, San > Francisco):
> Engine Yard > 500 Third Street, Suite 510 > San Francisco, CA 94107
> Contact cell (mine): 415-570-1669. > Host's phone: TBD (Larry, please follow up to BAHaskell with your contact > phone number)
> There's parking available close to Engine Yard, also it's usually possible > to find an empty spot on the streets (parking is free after 6pm).
> We have two presenters:
> Evan Laforge is going to present his Haskell project (music sequencer) and > reflect upon his experiences in writing a non-trivial application in Haskell > (20k lines of Haskell, 5k lines of C++). > Vlad Patryshev is going to show an example of using comonads in Haskell.
> As far as I understand, no “deep knowledge” of Haskell is required for this > meeting, so even if you have just started trying Haskell out, please come to > the meeting!
> Some people will be going from the South Bay (and probably East Bay) to the > meeting and back, so there's a possibility of carpooling. Also, it's very > easy to get to Engine Yard from the Caltrain station. Please send me a > message if you need help figuring out transportation.
> Please forward this email to those who may be interested in attending but > are not present in To/Cc fields and the respective lists. Please remove CCs > if you decide to reply to this email. > If you plan to attend, please subscribe to BAHaskell Google Group to follow > all the discussions related to this meeting.
> Cheers, > Ivan
> -- > You received this message because you are subscribed to the Google Groups > "Bay Area Haskell Users Group" group. > To post to this group, send email to bahaskell@googlegroups.com. > To unsubscribe from this group, send email to > bahaskell+unsubscribe@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/bahaskell?hl=en.
First, thanks to Vlad and Evan. Although I'm still wrapping my head around where comonads fit in, it's pretty clear what they *are*... And it looks like there's a deep, rich program underneath the simple gui that Evan wrote up.
I was in a rush to hit the safeway before grabbing the 9:40 Caltrain. Seems like I left my black jacket at Engine Yard. Has anyone seen it?
-arthur
On Jan 10, 10:39 pm, Ivan Tarasov <ivan.tara...@gmail.com> wrote:
> 1. Evan Laforge is going to present his Haskell project (music sequencer) > and reflect upon his experiences in writing a non-trivial application in > Haskell (20k lines of Haskell, 5k lines of C++). > 2. Vlad Patryshev is going to show an example of using comonads in > Haskell.
> As far as I understand, no “deep knowledge” of Haskell is required for this > meeting, so even if you have just started trying Haskell out, please come to > the meeting!
> Some people will be going from the South Bay (and probably East Bay) to the > meeting and back, so there's a possibility of carpooling. Also, it's very > easy to get to Engine Yard from the Caltrain station. Please send me a > message if you need help figuring out transportation.
> Please forward this email to those who may be interested in attending but > are not present in To/Cc fields and the respective lists. Please remove CCs > if you decide to reply to this email. > If you plan to attend, please subscribe to BAHaskell Google > Group<http://groups.google.com/group/bahaskell>to follow all the > discussions related to this meeting.
> I was in a rush to hit the safeway before grabbing the 9:40 Caltrain. > Seems like I left my black jacket at Engine Yard. Has anyone seen it?
Yes, I saw a jacket on the way out, I thought to give it to our host but I didn't realize he was still around at the time. In any case, since he works there (I guess?) he can just get it in the morning so the result is the same.
Anyway, it's on one of the seat backs so it's not lost.
Someone was asking about possibly reusable stuff and the logging system. There's not much, but what there is is at http://ofb.net/~elaforge/hs/util.tgz
This is mostly general utilities, MissingH kind of stuff. Lots of list and Map stuff, and some graph and array functions. And LoggerT along with the logging stuff.
Someone else (Ivan I think?) mentioned zippers for efficiently modifying data... and he mentioned something more specific, maybe some specific paper or library or something?
Yet another someone (sorry, I'm bad with names) was talking about an introduction to programming models for computer music. I'd be interested to read that.
An interesting idea that came up was to use Foldable or generics to write a generic diff for testing. I'll be looking into that.
And... while I have an audience, if anyone is interested, my group is doing a performance on the 30th. It's a Balinese ensemble and I promise it sounds better than the bleeps and bloops I played yesterday. Or if not for the music you could come for the dancing girls.
Mahea Uchiyama Center for International Dance Date: Saturday, January 30, 2010 Time: 8:00pm - 10:00pm Location: 729 Heinz Avenue (near 7th), Berkeley, CA General Admission……………..$20
On Tue, Jan 19, 2010 at 11:16 AM, Evan Laforge <qdun...@gmail.com> wrote: > Someone else (Ivan I think?) mentioned zippers for efficiently > modifying data... and he mentioned something more specific, maybe some > specific paper or library or something?
I'm not quite sure how applicable that would be to what you have there. I imagined that you have some kind of tree structure or even a graph and you needed to efficiently update only parts of that. Zippers/Web thing can help with that. But even if what you have is just a list of events, although zipper can help, you still may have a problem navigating to the right part of the datastructure (based on time, or score time, or whatever) efficiently; that may require a data-structure change.
> I was talking about the following article: Ralf Hinze, Johan Jeuring, > “Weaving a Web”.
Thanks, I'll check it out.
> I'm not quite sure how applicable that would be to what you have there. I > imagined that you have some kind of tree structure or even a graph and you > needed to efficiently update only parts of that. Zippers/Web thing can help > with that. But even if what you have is just a list of events, although > zipper can help, you still may have a problem navigating to the right part > of the datastructure (based on time, or score time, or whatever) > efficiently; that may require a data-structure change.
Yes, I have a tree of calls to functions, but they all emit events that get merged into a single sorted list. When implementing the caching stuff I'll probably have to change that to something like Map TrackPos SortedEvents, where the TrackPos is the pos of the head of SortedEvents. That way I can replace the output from one particular note without disturbing the others.
Then if sublists are guaranteed to not overlap I can just do 'concat . Map.toAscList'. Things get less efficient if they can overlap but I think I can still do it lazily if the heads of the sublists are nondecreasing.
And if I have a Map maybe I don't need zippers, Map.insert already works pretty well :)