Re: core data app questions - help!

  • I appreciate the responses to my questions, and I'm sorry if I've
    annoyed anybody with my lack of background in objective C or cocoa
    programming.

    My interest in cocoa programming is in developing applications, like
    this workout log, which I want to use, and which don't really exist
    in the way that I imagine them.  There are a couple of good training
    log programs out there for the mac, my favorite of which is Training
    Log Pro (http://www.brokenropesoftware.com/index.html), but it isn't
    exactly what I want, and I thought it would be a fun long term
    project to develop just exactly what I want.

    I do appreciate mmalc's suggestion to start from the beginning and
    develop an in depth background knowledge of cocoa, etc.  I also
    understand that not doing this will cause me to struggle, such as I
    am with my "wish list".  That said, as I said above, its not really
    what I'm interested in.  I guess you could say I want to develop a
    functional knowledge of writing these programs, not an academic one.
    But I'm sure, if this were a topic which I have a more academic
    interest, I would have given the same advice that mmalc gave me, so
    thank you for the advice.

    Though I can't say that my understanding of diff eqs and C++ has been
    particularly helpful, I think I have to agree with Ricardo that, on
    the whole, writing this program hasn't been all that difficult.  I
    understand that I am merely brushing the surface of the capabilities
    of the technology, and that I'm doing very little more than the
    "default" interface, but this is all I really want, with a couple of
    wrinkles, which were on my wish list.

    In the end, I. Savant's response was really the kind of response I
    was hoping for in the beginning.  I have yet to implement these
    ideas, but I think they will be do-able.

    Anyway, I just wanted to provide some feedback on my perspective on
    the conversation.  I do appreciate all of your input.  I'm sure I
    will be posting on this forum again as I continue to learn about
    cocoa programming.

    jacob
  • On Sep 9, 2007, at 7:28 PM, Jacob Scheckman wrote:

    > I do appreciate mmalc's suggestion to start from the beginning and
    > develop an in depth background knowledge of cocoa, etc.  I also
    > understand that not doing this will cause me to struggle, such as I
    > am with my "wish list".  That said, as I said above, its not really
    > what I'm interested in.  I guess you could say I want to develop a
    > functional knowledge of writing these programs, not an academic
    > one.  But I'm sure, if this were a topic which I have a more
    > academic interest, I would have given the same advice that mmalc
    > gave me, so thank you for the advice.
    >
    It's not quite clear why regard the advice as "academic", it's
    extremely *practical* and based on years of watching people struggling
    with Cocoa because they haven't yet learned the basics.  What you're
    saying is akin to, "I just want to translate The Iliad, so I don't
    really need to learn about declensions, conjugations, tenses, or
    voices first".

    Others have made the same point numerous times, but Erik happens to
    have it on a couple of occasions recently that I remember (once
    apropos of documentation, but the premise is the same): <> and <<A href="http://www.cocoabuilder.com/archive/message/cocoa/2007/8/20/188026">http://www.cocoabuilder.com/archive/message/cocoa/2007/8/20/188026>.

    > In the end, I. Savant's response was really the kind of response I
    > was hoping for in the beginning.  I have yet to implement these
    > ideas, but I think they will be do-able.
    >
    Being able to effectively and efficiently use I.S.'s suggestions will
    depend upon more than just a superficial understanding of Cocoa and
    its idioms.  Again, I strongly encourage you to start with simpler
    examples and build on those.  If you choose not to do this, I would
    also ask that you don't post questions to the list about the more
    complex technologies if you find them to be confusing -- it's simply
    not fair on the membership.

    mmalc
  • On 10 Sep 2007, at 05:33, mmalc crawford wrote:

    > On Sep 9, 2007, at 7:28 PM, Jacob Scheckman wrote:
    >
    >> I do appreciate mmalc's suggestion to start from the beginning and
    >> develop an in depth background knowledge of cocoa, etc.  I also
    >> understand that not doing this will cause me to struggle, such as
    >> I am with my "wish list".  That said, as I said above, its not
    >> really what I'm interested in.  I guess you could say I want to
    >> develop a functional knowledge of writing these programs, not an
    >> academic one.  But I'm sure, if this were a topic which I have a
    >> more academic interest, I would have given the same advice that
    >> mmalc gave me, so thank you for the advice.
    >>
    > It's not quite clear why regard the advice as "academic", it's
    > extremely *practical* and based on years of watching people
    > struggling with Cocoa because they haven't yet learned the basics.
    > What you're saying is akin to, "I just want to translate The Iliad,
    > so I don't really need to learn about declensions, conjugations,
    > tenses, or voices first".

    Or in terms of differential equations, which you claim to be familiar
    with, it's like someone insisting on learning the Laplace transform
    before they've mastered addition, claiming that they don't really
    need to understand how to add two numbers to do Laplace transforms.
    I'm sure you can see both (a) how someone could argue this (since the
    Laplace transform is an algebraic rather than arithmetic operation),
    and (b) that they are mistaken.

    There's nothing wrong with jumping in feet first for a toy
    application, but:

    1. Few people get good results first time using the feet-first
    approach, so it's normally only appropriate for toy apps (and even
    then you might find that, after doing it once, you want to re-
    implement it with your new found knowledge).

    2. It can be very confusing, particularly if you don't have
    sufficient grounding in the basics first.  Since the basics of ObjC
    and Cocoa are very simple, it really is worth familiarising yourself
    with them first.

    Kind regards,

    Alastair.

    --
    http://alastairs-place.net
  • On Sep 10, 2007, at 6:49 AM, Alastair Houghton wrote:

    > On 10 Sep 2007, at 05:33, mmalc crawford wrote:
    >
    >> On Sep 9, 2007, at 7:28 PM, Jacob Scheckman wrote:
    >>
    >>> I do appreciate mmalc's suggestion to start from the beginning
    >>> and develop an in depth background knowledge of cocoa, etc.  I
    >>> also understand that not doing this will cause me to struggle,
    >>> such as I am with my "wish list".  That said, as I said above,
    >>> its not really what I'm interested in.  I guess you could say I
    >>> want to develop a functional knowledge of writing these programs,
    >>> not an academic one.  But I'm sure, if this were a topic which I
    >>> have a more academic interest, I would have given the same advice
    >>> that mmalc gave me, so thank you for the advice.
    >>>
    >> It's not quite clear why regard the advice as "academic", it's
    >> extremely *practical* and based on years of watching people
    >> struggling with Cocoa because they haven't yet learned the
    >> basics.  What you're saying is akin to, "I just want to translate
    >> The Iliad, so I don't really need to learn about declensions,
    >> conjugations, tenses, or voices first".

    I consider the knowledge you're describing as more academic because
    it represents a deeper understanding of what happens behind the
    scenes in the program.  I KNOW that this will result in gaps in my
    knowledge, but if I decide that I need to fill those, eventually I
    will.  Here is an example: http://developer.apple.com/cocoa/
    coredatatutorial/index.html
    I didn't completely start from scratch, and I did go through these
    simple tutorials.  The example I'm pointing to is the second to last
    part of this tutorial, basically how to make the input date field
    default to the current date.  The tutorial was straightforward and
    told me what to do to make it work, and it does work, even though in
    the end I don't have that deep of an understanding of what I actually
    did and WHY it works.

    > Or in terms of differential equations, which you claim to be
    > familiar with, it's like someone insisting on learning the Laplace
    > transform before they've mastered addition, claiming that they
    > don't really need to understand how to add two numbers to do
    > Laplace transforms.  I'm sure you can see both (a) how someone
    > could argue this (since the Laplace transform is an algebraic
    > rather than arithmetic operation), and (b) that they are mistaken.

    It seems to me like a bit of an exaggeration that my questions were
    like asking how to translate the Iliad or to perform a Laplace
    transform, but maybe I'm very mistaken.  It also seems a little bit
    much to continue the analogy to say that I don't even know how to
    add.  Again, I could be wrong.  If I am wrong I would've appreciated
    if someone early on had said that the things I was asking really WERE
    kind of complicated.  Nobody really said that.  Some people tried to
    help, others made it clear that I didn't know enough to be qualified
    to ask a question on the forum and that I should hit the books before
    I talk to them.

    > There's nothing wrong with jumping in feet first for a toy
    > application, but:
    >
    > 1. Few people get good results first time using the feet-first
    > approach, so it's normally only appropriate for toy apps (and even
    > then you might find that, after doing it once, you want to re-
    > implement it with your new found knowledge).
    >
    > 2. It can be very confusing, particularly if you don't have
    > sufficient grounding in the basics first.  Since the basics of ObjC
    > and Cocoa are very simple, it really is worth familiarising
    > yourself with them first.

    This I appreciate, and completely agree with (thank you for saying
    this in a respectful way).  I'm sure that I'll re-implement the
    program several times with my approach - I already have.  I'm also
    sure I'll be confused, but I'd rather fill in the gaps in my
    knowledge as I go than to spend a lot of time studying up front.

    > Being able to effectively and efficiently use I.S.'s suggestions
    > will depend upon more than just a superficial understanding of
    > Cocoa and its idioms.  Again, I strongly encourage you to start
    > with simpler examples and build on those.  If you choose not to do
    > this, I would also ask that you don't post questions to the list
    > about the more complex technologies if you find them to be
    > confusing -- it's simply not fair on the membership.

    No kidding - but I.S.'s suggestions give me a place to start
    learning, rather than others which suggested just to start at the
    beginning.  I KNOW I need to learn more about this, but thats why I'm
    asking questions, so that I can target what I learn about to what I
    want to get done.

    > Again, I strongly encourage you to start with simpler examples and
    > build on those.  If you choose not to do this, I would also ask
    > that you don't post questions to the list about the more complex
    > technologies if you find them to be confusing -- it's simply not
    > fair on the membership.

    ?  Don't ask questions if you're confused?  At what point is someone
    qualified to post on this forum?  My suggestion to you would be that
    if a post is annoying to you just don't respond.  Any forum that I've
    ever posted on before has been a place for someone with less
    knowledge to ask questions of people with more knowledge, and
    questions that people pose, even if they are elementary questions are
    met with respect and understanding.  If my questions are too basic to
    be asked on this forum, I wholeheartedly apologize for wasting your
    time, and needless to say you won't hear from me again.
  • On Sep 10, 2007, at 8:31 AM, Jacob Scheckman wrote:

    >> Or in terms of differential equations, which you claim to be
    >> familiar with, it's like someone insisting on learning the Laplace
    >> transform before they've mastered addition, claiming that they
    >> don't really need to understand how to add two numbers to do
    >> Laplace transforms.  I'm sure you can see both (a) how someone
    >> could argue this (since the Laplace transform is an algebraic
    >> rather than arithmetic operation), and (b) that they are mistaken.
    >
    > It seems to me like a bit of an exaggeration that my questions were
    > like asking how to translate the Iliad or to perform a Laplace
    > transform, but maybe I'm very mistaken.  It also seems a little bit
    > much to continue the analogy to say that I don't even know how to
    > add.  Again, I could be wrong.  If I am wrong I would've appreciated
    > if someone early on had said that the things I was asking really
    > WERE kind of complicated.  Nobody really said that.
    >
    My first reply:

    "I would strongly suggest reading <http://developer.apple.com/documentation/Cocoa/Conceptual/CoreData/Articles
    /cdBeforeYouStart.html
    > then spending a week or two trying smaller projects focusing on
    learning the fundamental design patterns and techniques that pervade
    Cocoa (see in particular <http://developer.apple.com/documentation/Cocoa/Conceptual/CocoaFundamentals
    /index.html
    >) before complicating matters with Core Data."

    The first reference starts, "Core Data is not an entry-level
    technology. It leverages many other Cocoa technologies, including
    memory management, key-value coding, and key-value observing. You must
    understand these technologies to use Core Data effectively. You also
    need a solid understanding of data modeling and the model-view-
    controller design pattern as it pertains to Cocoa."

    > This I appreciate, and completely agree with (thank you for saying
    > this in a respectful way).  I'm sure that I'll re-implement the
    > program several times with my approach - I already have.  I'm also
    > sure I'll be confused, but I'd rather fill in the gaps in my
    > knowledge as I go than to spend a lot of time studying up front.
    >
    And again, this is typically not an efficient modus operandi.
    You again seem to regard this ("time studying up front") as a
    "academic" exercise.  It's not.  As my first reply stated, you should
    "[spend] a week or two trying smaller projects" -- it's not a simple
    matter of reading, it's *doing*.

    > No kidding - but I.S.'s suggestions give me a place to start
    > learning, rather than others which suggested just to start at the
    > beginning.
    >
    The Cocoa Fundamentals Guide (<>) is a good place to start learning... (see also <<A href="http://developer.apple.com/referencelibrary/GettingStarted/GS_Cocoa/index.html">http://developer.apple.com/referencelibrary/GettingStarted/GS_Cocoa/index.h
    tml
    >).

    >> Again, I strongly encourage you to start with simpler examples and
    >> build on those.  If you choose not to do this, I would also ask
    >> that you don't post questions to the list about the more complex
    >> technologies if you find them to be confusing -- it's simply not
    >> fair on the membership.
    >
    > ?  Don't ask questions if you're confused?  At what point is someone
    > qualified to post on this forum?  My suggestion to you would be that
    > if a post is annoying to you just don't respond.  Any forum that
    > I've ever posted on before has been a place for someone with less
    > knowledge to ask questions of people with more knowledge, and
    > questions that people pose, even if they are elementary questions
    > are met with respect and understanding.  If my questions are too
    > basic to be asked on this forum, I wholeheartedly apologize for
    > wasting your time, and needless to say you won't hear from me again.
    >
    It's not an issue of questions being too basic -- I made clear that my
    request was confined to "questions about more complex technologies".
    You're asserting that you're going to wantonly ignore advice to start
    at a more appropriate level.  If you get confused by the way Core Data
    behaves because you haven't taken the time to (as recommended here and
    in the documentation) adequately familiarise yourself with, say,
    memory management, key-value observing, or the model-view-controller
    design pattern, then it's not fair on the list to in effect ask others
    to dissect your questions to find the root cause of your problems and
    then back-fill the information you were recommended to learn in the
    first place.

    mmalc
  • I omitted to comment on this in the previous reply:

    On Sep 10, 2007, at 8:31 AM, Jacob Scheckman wrote:
    > I consider the knowledge you're describing as more academic because
    > it represents a deeper understanding of what happens behind the
    > scenes in the program.
    >
    No, absolutely not.  As I stated earlier, the issue is not what
    happens "behind the scenes", it is the fundamental idioms that
    underpin Cocoa.  Please read the two messages I referred to from Erik
    Buck:
      <http://www.cocoabuilder.com/archive/message/cocoa/2007/8/31/188545>
      <http://www.cocoabuilder.com/archive/message/cocoa/2007/8/20/188026>

    A couple of salient quotes:

    "for me at least, it just isn't productive to jump into a large
    framework and attempt to implement fairly complex behaviors using
    features of the framework that I don't understand."

    "In most respects, Cocoa is not an al-la-cart framework.  There are
    key design patterns, repeated idioms, optional conventions, and most
    importantly some essential conventions.  No matter how much experience
    a programmer may have, if the programmer fails to adhere to essential
    conventions (like Cocoa memory management conventions), they will not
    succeed with Cocoa."

    "Because Cocoa is a cohesive system that is astoundingly consistent, a
    programmer who groks it can correctly guess class and method names,
    anticipate potential error cases, avoid unnecessary code, and benefit
    from legendary productivity.  A programmer who is missing one or more
    key concepts will find seeming barriers everywhere because Cocoa
    probably applies the concept ubiquitously."

    mmalc
  • On 9/10/07, Jacob Scheckman <jacob.scheckman...> wrote:

    > Don't ask questions if you're confused?  At what point is someone
    > qualified to post on this forum?

    I think Mmalc meant it more in terms of it will be hard to answer
    complex questions if we don't have a common language and understanding
    of some of the fundamental aspects. (not I haven't followed this
    thread until the posts today)

    I know from experience that in those situation I often have to
    backtrack, slowly via email, what exactly the individual is having
    problems with and/or doesn't know and how to describe the solutions
    using terminology that can be understood ... often it become easier
    for both the asker and answerer to say here are a few docs that you
    should go look at first and once you get past those come back with any
    questions that remain.

    I know the latter can irk some folks but one can seldom do better in
    email then what the docs do on the subject matter.

    So please ask question! Just don't be put off if we point you at documentation.

    Regards,
    -Shawn
  • > ... often it become easier
    > for both the asker and answerer to say here are a few docs that you
    > should go look at first and once you get past those come back with any
    > questions that remain.
    >
    > I know the latter can irk some folks but one can seldom do better in
    > email then what the docs do on the subject matter.
    >
    > So please ask question! Just don't be put off if we point you at documentation.

      Agreed 100%. Jacob referenced my pointed suggestions several times
    (thanks :-)) but it's only fair to point out that the more generalized
    pointers to the documentation are still 100% valid. I just believe
    it's far more helpful to get pointed to the correct documentation
    *and* have the overall approach described. That way you have a much
    better idea of what  key things to look for while reading and
    re-reading the reference material.

      Definitely RTFM, though! :-) It does save those whom you're asking
    for help a *lot* of grief in trying to guess how much detail to give
    and where to start. All of those who answer questions and provide help
    on this list (except the moderators) are volunteers. Many of us really
    are quite lazy, too (I stand guilty as charged).  Help us help you.

    --
    I.S.
  • On Sep 10, 2007, at 9:26 AM, I. Savant wrote:

    > All of those who answer questions and provide help on this list
    > (except the moderators) are volunteers.
    >
    Actually, the moderators are volunteers too.

    mmalc
  • >> All of those who answer questions and provide help on this list
    >> (except the moderators) are volunteers.
    >>
    > Actually, the moderators are volunteers too.

      Thanks, you've shattered my fantasy image of lowly developers /
    technical writers shackled to old 1950s-style metal desks in some
    smoky Cupertino basement! Attend, sir!

    --
    I.S.
previous month september 2007 next month
MTWTFSS
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Go to today