Quick questions from developer new to Mac OS

Discussion in 'Mac Programming' started by tamvly, Jul 1, 2011.

  1. tamvly macrumors 6502a


    Nov 11, 2007
    Hoping for a little help here ...

    For those of you who have already done the work of learning the Mac OS frameworks and APIs I am hoping for confirmation that a few of the following have robust implementations in the MAC OS X APIs:

    in memory data-base accessible though SQL
    backing store for data to be loaded into said in-memory database
    full compliment of XML APIs

    Thanks in advance.
  2. chown33 macrumors 604

    Aug 9, 2009
    Sailing beyond the sunset
    What have you tried?

    Have you searched extensively and found nothing?
    Searched extensively and found conflicting information?
    Not searched at all?

    If it's either of the first two, then please explain what search terms you tried and what the results were. If there are conflicts in what you found, describe them.

    If you haven't searched at all, then you should at least try the obvious search terms:
    mac os x sql
    mac os x sql in-memory
    mac os x xml api
    mac os x xml class
    mac os x xml library
  3. tamvly thread starter macrumors 6502a


    Nov 11, 2007
    I should have mentioned in my op that I have tried searches such as those suggested by chown, with little success.

    Any suggestions would be appreciated.
  4. Catfish_Man macrumors 68030


    Sep 13, 2001
    Portland, OR
    sqlite and Core Data come to mind as possibilities for the first two. Cocoa has NSXMLParser (SAX), and NSXMLDocument (DOM) for XML, and the lower level libxml2 api is also available.
  5. chown33, Jul 1, 2011
    Last edited: Jul 1, 2011

    chown33 macrumors 604

    Aug 9, 2009
    Sailing beyond the sunset
    Please explain in more detail.

    Exactly what search terms did you use? Which search engine?

    Exactly what were you unsuccessful in finding? Information about SQL databases in general? About in-memory ones? About their robustness?

    What was unsuccessful about searches for XML APIs? Information about library or class features? About compliance with standards? About reliability or robustness?

    I did not post that list of search terms randomly. I don't usually do this, but I'm going to summarize the search results, and give a cursory analysis of what seem to be the most promising results from the first page of results.

    First, I only used google. I entered the search terms into the google home page search field, not into the search field in my browser window. I mention this in case another search engine might give other results, or a browser sends different supplemental query data.

    I'm located in the USA, so if google returns locale-specific results, please take that into consideration.

    If I mention the position of a specific result, yet you see something different (such as no such result at all), then maybe something is different about how your google search is being qualified by your browser.

    Terms: mac os x sql

    Top hit: a MySQL article discussing how to install MySQL on Mac OS X, and mentioning when it's already present by default (i.e. Mac OS X Server).

    The remainder of hits on the first page seem more like product placement, but there is certainly a range of products. When I encounter situations like this, the first thing I do is narrow the search to the specific site of a promising result. Site-specific search is something every developer should know how to do.

    Narrowed terms: mac os x sql site:developer.apple.com

    Second hit is about PostgreSQL. Then several items from the "Mac OS X Manual Pages" section of the site.

    Seventh hit, and the next one that looks different from the man pages, is for Core Data Programming Guide: Persistent Store Features.

    If unfamiliar with what Core Data is, could perform a secondary search about that, but can come back to that. Clicking the link shows a table with headings for XML, Atomic, SQLite, and In-Memory. SQLite is a product name worth remembering for additional searches. In-memory looks promising for further research. I'll let you read the actual page for further details.

    Terms: mac os x sql in-memory

    Top hit: the above Core Data Programming Guide: Persistent Store Features article. Hmm, really should do some research into this. Might be useful, or it might not, if only we knew more details about the requirements.

    Not much else seems relevant on the first page of hits.

    At this point, I begin to wonder exactly what the in-memory requirement is for. Is it for speed? Speed of what: Queries? Updates? What size is expected? What precautions will there be to prevent thrashing due to VM paging? An in-memory database may cause memory pressures that result in paging, which degrades overall performance, where a database that used backing-store on disk may not suffer that kind of paging, or perhaps not to the same degree. Thinking about backing-store makes me wonder what the database's intended use is. There's a wide range of potential uses, and it's entirely possible that a fast SQLite database more than meets the actual requirements. If only we knew more about what those requirements were.

    Terms: mac os x xml api

    Results: Meh. Too generic.
    - Cocoa API defined by wikipedia
    - Property list defined by wikipedia
    - Google queries
    - Lua
    - Python bindings

    Strategy: try a different word for one of the search terms. Taking a clue from what Cocoa is (an object-oriented framework), I choose the word class to replace api, on the hypothesis that if there are any Cocoa classes for XML, this is likely to produce results.

    Terms: mac os x xml class

    Top hit: NSXMLParser class reference doc. Click the link to read what it does. So: event-driven parser, supports DTDs, etc. etc.

    The class looks promising, especially after investing a little time to read the Companion Guide linked to, and then the Related Documents noted in the Event-Driven XML Programming Guide.

    Next, replacing class with library in search terms...

    Terms: mac os x xml library

    Multiple XML parser libraries that say they work on Mac OS X. The top hit is for libxml2, which bears further searches regarding its reliability, robustness, and which version is shipped with which OS version. The MIT license will make it easy to embed in an app, if necessary to achieve reliability requirements. Which makes me wonder exactly what the robustness and reliability requirements actually are.

    So, this is what I tried. The results look like much more than what could be called "little success", but without knowing exactly what you're looking for, I'm not really sure. Asking about generic terms like SQL, XML, and "robust" doesn't give enough detail to answer. Especially if you aren't asking about specific classes, libraries, or sets of requirements with a stated purpose.

    I don't expect you to post your entire search strategy, with annotated results, like I did above. I wrote all that only to show what the actual results were, and to show how easily those results were found from the exact search terms I first provided. If specifics like MySQL, SQLite, NSXMLParser, and libxml2 are what you consider "little success", then I suggest that you haven't clearly explained what problem you're trying solve, nor what kind of answer you're expecting us to provide. Conversely, if you have a specific question about one of those specific items, then you should ask a specific question about a specific thing.
  6. tamvly thread starter macrumors 6502a


    Nov 11, 2007
    Thanks for the list. I really appreciate it.

    I believe the mistake I made was using only MacRumors as a source of searches. I sorted through literally hundreds of posts that we're completely irrelevant.

    Now where my brain was in all of this when I should have used a search engine other than MacRumors to begin with, I don't know. POint made.
  7. chown33 macrumors 604

    Aug 9, 2009
    Sailing beyond the sunset
    This is exactly the kind of reply I was expecting when I asked "What have you tried?".

    If you had posted this in reply I would have said "MacRumors is not a search engine; it's a website with search. Try google or bing instead."

    In the future, when someone asks "What have you tried?", I hope you will succinctly describe what you actually tried, instead of simply saying you obtained little success, yet never describing what you did.

Share This Page