Loading ...
Sorry, an error occurred while loading the content.

Using TaffyDB? Attending JSConf?

Expand Messages
  • tacoman_cool
    Hey Everyone, Just a quick note to let you know I m going to be giving a talk at JSConf2009 on TaffyDB. Was curious if any of you are going to be there. I was
    Message 1 of 8 , Mar 11, 2009
    • 0 Attachment
      Hey Everyone,

      Just a quick note to let you know I'm going to be giving a talk at JSConf2009 on TaffyDB. Was curious if any of you are going to be there.

      I was also looking for examples of "in the wild" uses for TaffyDB. So if you are doing anything cool with it you can email me directly or just post to the list.

      Thanks!

      Ian
    • berg.matt
      Ian, I actually use TaffyDB pretty heavily on one of my sites. It is called Vitalist and can be found at http://www.vitalist.com. It is a productivity
      Message 2 of 8 , Mar 24, 2009
      • 0 Attachment
        Ian,

        I actually use TaffyDB pretty heavily on one of my sites. It is called Vitalist and can be found at http://www.vitalist.com It is a productivity manager in the style ala GTD. Let me know if you would like a test account or feel free to sign-up and check it out.

        Thanks again for making TaffyDb, definitely has been a savior, especially with my current development of offline use with Google Gears.

        Matt

        --- In taffydb@yahoogroups.com, "tacoman_cool" <ian@...> wrote:
        >
        > Hey Everyone,
        >
        > Just a quick note to let you know I'm going to be giving a talk at JSConf2009 on TaffyDB. Was curious if any of you are going to be there.
        >
        > I was also looking for examples of "in the wild" uses for TaffyDB. So if you are doing anything cool with it you can email me directly or just post to the list.
        >
        > Thanks!
        >
        > Ian
        >
      • Jon Crosby
        ... Ian, I am using a slightly modified version of TaffyDB for CloudKit s jQuery plugin. I patched it so that callbacks were asynchronous, allowing the
        Message 3 of 8 , Mar 25, 2009
        • 0 Attachment
          On Wed, Mar 11, 2009 at 9:25 AM, tacoman_cool <ian@...> wrote:
          >
          > Hey Everyone,
          >
          > Just a quick note to let you know I'm going to be giving a talk at JSConf2009 on TaffyDB. Was curious if any of you are going to be there.
          >
          > I was also looking for examples of "in the wild" uses for TaffyDB. So if you are doing anything cool with it you can email me directly or just post to the list

          Ian, I am using a slightly modified version of TaffyDB for CloudKit's
          jQuery plugin. I patched it so that callbacks were asynchronous,
          allowing the callbacks to update remote models in CloudKit. Here are
          the relevant links:

          CloudKit: http://getcloudkit.com

          jQuery Plugin: http://github.com/jcrosby/jquery-cloudkit

          jQuery Plugin announcement in the context of CloudKit:
          http://blog.joncrosby.me/post/84826886/json-meets-tokyo-cabinet-and-more-cloudkit-0-11-0


          Jon Crosby
          http://joncrosby.me


          >
          > Thanks!
          >
          > Ian
          >
          > .
        • tacoman_cool
          Hey Matt, Very nice work on Vitalist. I just signed up and am checking out the free version. You kind of hit the Taffy nail on the head, I originally started
          Message 4 of 8 , Mar 28, 2009
          • 0 Attachment
            Hey Matt,

            Very nice work on Vitalist. I just signed up and am checking out the free version. You kind of hit the Taffy nail on the head, I originally started the framework when I was working on my own to do list project. The project kind of fizzled out but I've recently taken it up again and hope to deploy it this year as sort of a spiritual successor to Joe's Goals.

            Anyway, great work on the project and thanks for giving me a heads up.

            Ian


            --- In taffydb@yahoogroups.com, "berg.matt" <berg.matt@...> wrote:
            >
            > Ian,
            >
            > I actually use TaffyDB pretty heavily on one of my sites. It is called Vitalist and can be found at http://www.vitalist.com It is a productivity manager in the style ala GTD. Let me know if you would like a test account or feel free to sign-up and check it out.
            >
            > Thanks again for making TaffyDb, definitely has been a savior, especially with my current development of offline use with Google Gears.
            >
            > Matt
            >
            > --- In taffydb@yahoogroups.com, "tacoman_cool" <ian@> wrote:
            > >
            > > Hey Everyone,
            > >
            > > Just a quick note to let you know I'm going to be giving a talk at JSConf2009 on TaffyDB. Was curious if any of you are going to be there.
            > >
            > > I was also looking for examples of "in the wild" uses for TaffyDB. So if you are doing anything cool with it you can email me directly or just post to the list.
            > >
            > > Thanks!
            > >
            > > Ian
            > >
            >
          • tacoman_cool
            Very very cool work. Just walked through the file and although I don t grasp all the implications of your patches it is very fascinating. Can you tell me a
            Message 5 of 8 , Mar 28, 2009
            • 0 Attachment
              Very very cool work. Just walked through the file and although I don't grasp all the implications of your patches it is very fascinating.

              Can you tell me a little more about the advantages of the async and map changes you made and whether or not they could be good candidates for additions to a future version of TaffyDB?

              Either way, pretty cool to see it in action.

              --- In taffydb@yahoogroups.com, Jon Crosby <jon.r.crosby@...> wrote:
              >
              > On Wed, Mar 11, 2009 at 9:25 AM, tacoman_cool <ian@...> wrote:
              > >
              > > Hey Everyone,
              > >
              > > Just a quick note to let you know I'm going to be giving a talk at JSConf2009 on TaffyDB. Was curious if any of you are going to be there.
              > >
              > > I was also looking for examples of "in the wild" uses for TaffyDB. So if you are doing anything cool with it you can email me directly or just post to the list
              >
              > Ian, I am using a slightly modified version of TaffyDB for CloudKit's
              > jQuery plugin. I patched it so that callbacks were asynchronous,
              > allowing the callbacks to update remote models in CloudKit. Here are
              > the relevant links:
              >
              > CloudKit: http://getcloudkit.com
              >
              > jQuery Plugin: http://github.com/jcrosby/jquery-cloudkit
              >
              > jQuery Plugin announcement in the context of CloudKit:
              > http://blog.joncrosby.me/post/84826886/json-meets-tokyo-cabinet-and-more-cloudkit-0-11-0
              >
              >
              > Jon Crosby
              > http://joncrosby.me
              >
              >
              > >
              > > Thanks!
              > >
              > > Ian
              > >
              > > .
              >
            • Jon Crosby
              On Sat, Mar 28, 2009 at 12:40 PM, tacoman_cool ... grasp all the implications of your patches it is very fascinating. ... changes you
              Message 6 of 8 , Mar 29, 2009
              • 0 Attachment
                On Sat, Mar 28, 2009 at 12:40 PM, tacoman_cool <ian@...> wrote:
                >
                > Very very cool work. Just walked through the file and although I don't grasp all the implications of your patches it is very fascinating.
                >
                > Can you tell me a little more about the advantages of the async and map changes you made and whether or not they could be good candidates for additions to a future version of TaffyDB?

                Sure thing. The purpose of the adding "map" to the configuration is to allow a function to be applied to the output of get. For example, in CloudKit, I need to store a metadata ID in the database in order to map it to a parallel local database that contains only HTTP metadata (like ETag, Last-Modified, URI, etc.). By configuring the collection with a mapping function, I can express that each result in a set of JSON objects should not include the metadata ID (i.e. a function that runs delete item['___cloudkit_local_id___'] on each member of the collection.

                The async patches account for the fact that a callback for insert, update, and delete might not be instant. In the jQuery CloudKit plugin, I have added callbacks for these functions that make network calls to CloudKit. This allows the browser to stay responsive while a request is running in the background. When the result of the request is returned, I update the local metadata with the information reported by the server or take action if there was an error.

                Both of these items would probably make useful additions to the core library. The map function would not affect the current API whereas the async callback patch is a little more intrusive and adds complexity in the cases where it is not necessary. If there was a way to have two types of callbacks -- sync and async -- that would solve the problem.

                -Jon

                >
                > Either way, pretty cool to see it in action.
                >
                > --- In taffydb@yahoogroups.com, Jon Crosby <jon.r.crosby@...> wrote:
                >
                > >
                > > On Wed, Mar 11, 2009 at 9:25 AM, tacoman_cool <ian@...> wrote:
                > > >
                > > > Hey Everyone,
                > > >
                > > > Just a quick note to let you know I'm going to be giving a talk at JSConf2009 on TaffyDB. Was curious if any of you are going to be there.
                > > >
                > > > I was also looking for examples of "in the wild" uses for TaffyDB. So if you are doing anything cool with it you can email me directly or just post to the list
                > >
                > > Ian, I am using a slightly modified version of TaffyDB for CloudKit's
                > > jQuery plugin. I patched it so that callbacks were asynchronous,
                > > allowing the callbacks to update remote models in CloudKit. Here are
                > > the relevant links:
                > >
                > > CloudKit: http://getcloudkit.com
                > >
                > > jQuery Plugin: http://github.com/jcrosby/jquery-cloudkit
                > >
                > > jQuery Plugin announcement in the context of CloudKit:
                > > http://blog.joncrosby.me/post/84826886/json-meets-tokyo-cabinet-and-more-cloudkit-0-11-0
                > >
                > >
                > > Jon Crosby
                > > http://joncrosby.me
                > >
                > >
                > > >
                > > > Thanks!
                > > >
                > > > Ian
                > > >
              • tacoman_cool
                Thanks for the details. Those both sound like great additions. One thing I ve been thinking about is rewriting the event API to make it more flexible (and to
                Message 7 of 8 , Mar 29, 2009
                • 0 Attachment
                  Thanks for the details. Those both sound like great additions.

                  One thing I've been thinking about is rewriting the event API to make it more flexible (and to potentially add more events). So there would be a collection.attachEvent() and a collection.removeEvent()...potentially they could also encapsulate the ability to call the events asynchronously.

                  Also, tell me if this would to care of your map needs. I've though about returning an "enhanced" array from get() that is actually a modified version of a taffy collection (in array form). This would allow for a type of JQuery style chaining. For example you could call collection.get({status:"active"}).orderBy("createDTG").forEach(function (r) {alert(r.name})

                  So in theory you could call .get().forEach() to take care of your mapping needs.

                  Let me know your thoughts.

                  Ian


                  > Sure thing. The purpose of the adding "map" to the configuration is to allow
                  > a function to be applied to the output of get. For example, in CloudKit, I
                  > need to store a metadata ID in the database in order to map it to a parallel
                  > local database that contains only HTTP metadata (like ETag, Last-Modified,
                  > URI, etc.). By configuring the collection with a mapping function, I can
                  > express that each result in a set of JSON objects should not include the
                  > metadata ID (i.e. a function that runs delete
                  > item['___cloudkit_local_id___'] on each member of the collection.
                  >
                  > The async patches account for the fact that a callback for insert, update,
                  > and delete might not be instant. In the jQuery CloudKit plugin, I have added
                  > callbacks for these functions that make network calls to CloudKit. This
                  > allows the browser to stay responsive while a request is running in the
                  > background. When the result of the request is returned, I update the local
                  > metadata with the information reported by the server or take action if there
                  > was an error.
                  >
                  > Both of these items would probably make useful additions to the core
                  > library. The map function would not affect the current API whereas the async
                  > callback patch is a little more intrusive and adds complexity in the cases
                  > where it is not necessary. If there was a way to have two types of callbacks
                  > -- sync and async -- that would solve the problem.
                  >
                  > -Jon
                  >
                • Jon Crosby
                  ... That would be very helpful. If one could attach more than one event and they could each be sync/async as needed, that would take care of a large number of
                  Message 8 of 8 , Mar 30, 2009
                  • 0 Attachment
                    On Sun, Mar 29, 2009 at 4:47 PM, tacoman_cool <ian@...> wrote:
                    >
                    > Thanks for the details. Those both sound like great additions.
                    >
                    > One thing I've been thinking about is rewriting the event API to make it more flexible (and to potentially add more events). So there would be a collection.attachEvent() and a collection.removeEvent()...potentially they could also encapsulate the ability to call the events asynchronously.

                    That would be very helpful. If one could attach more than one event
                    and they could each be sync/async as needed, that would take care of a
                    large number of use cases.

                    >
                    > Also, tell me if this would to care of your map needs. I've though about returning an "enhanced" array from get() that is actually a modified version of a taffy collection (in array form). This would allow for a type of JQuery style chaining. For example you could call collection.get({status:"active"}).orderBy("createDTG").forEach(function (r) {alert(r.name})
                    >
                    > So in theory you could call .get().forEach() to take care of your mapping needs.

                    I like the forEach chaining idea although it would still expose the
                    hidden elements in my collections to the user, requiring them to run
                    the forEach on all result sets. This is an unusual situation though,
                    that of CloudKit wrapping TaffyDB instead of using it directly, so
                    others may be better suited to comment on this feature.

                    -Jon

                    >
                    > Let me know your thoughts.
                    >
                    > Ian
                    >
                    > > Sure thing. The purpose of the adding "map" to the configuration is to allow
                    > > a function to be applied to the output of get. For example, in CloudKit, I
                    > > need to store a metadata ID in the database in order to map it to a parallel
                    > > local database that contains only HTTP metadata (like ETag, Last-Modified,
                    > > URI, etc.). By configuring the collection with a mapping function, I can
                    > > express that each result in a set of JSON objects should not include the
                    > > metadata ID (i.e. a function that runs delete
                    > > item['___cloudkit_local_id___'] on each member of the collection.
                    > >
                    > > The async patches account for the fact that a callback for insert, update,
                    > > and delete might not be instant. In the jQuery CloudKit plugin, I have added
                    > > callbacks for these functions that make network calls to CloudKit. This
                    > > allows the browser to stay responsive while a request is running in the
                    > > background. When the result of the request is returned, I update the local
                    > > metadata with the information reported by the server or take action if there
                    > > was an error.
                    > >
                    > > Both of these items would probably make useful additions to the core
                    > > library. The map function would not affect the current API whereas the async
                    > > callback patch is a little more intrusive and adds complexity in the cases
                    > > where it is not necessary. If there was a way to have two types of callbacks
                    > > -- sync and async -- that would solve the problem.
                    > >
                    > > -Jon
                    > >
                  Your message has been successfully submitted and would be delivered to recipients shortly.