1. delta_foxtrot2's Avatar
    Pardon my ignorance on RIM specific APIs and their handling on depreciating APIs, but most of their documentation hints at what functions have been depreciated in favour of, but not always, is there some kind of master list of what function has changed into what?

    eg net.rim.device.api.system.DeviceInfo had isInHolster() but this has been depreciated as of 4.6.0, in favour of what, neither I nor google have the faintest...

    BlackBerry JDE 4.6.0 API Reference: Class DeviceInfo)
    12-05-08 07:30 AM
  2. patrick.waugh's Avatar
    Pardon my ignorance on RIM specific APIs and their handling on depreciating APIs, but most of their documentation hints at what functions have been depreciated in favour of, but not always, is there some kind of master list of what function has changed into what?

    eg net.rim.device.api.system.DeviceInfo had isInHolster() but this has been depreciated as of 4.6.0, in favour of what, neither I nor google have the faintest...
    First, they are not "functions", but object methods. There is a big difference.

    When you see a class method deprecated in an API with no mention of the method which replaces it, this is usually because a completely new Class or Interface will now be providing that information/behavior.

    When you program using an API, it is important to not just blindly install and begin using a new version. You should read the documentation for what changes have been made.

    Everything is located on the RIM Developers Site.


    Support->Product Documentation->Documentation for Developers->BB Java Application Development->BB Java Development Environment


    Select 4.6.0 in the drop down to filter results, and select the third from the bottom


    BlackBerry Java Development Environment - BlackBerry JDE API Reference 4.6.0


    This will familiarize you with what new Classes, Interfaces, Fields, etc. have been created. One of these is the one you need:

    net.rim.device.api.system.Sensor

    Review the Class docs for more info on how to use it and the new fields and methods it encapsulates.
    12-05-08 01:40 PM
  3. delta_foxtrot2's Avatar
    Thanks for the run down I appreciate you taking the time in doing so, I'll churn through all the links as time permits.

    The sheer amount of information can be overwhelming at times to those new to the RIM platform and without good references pointing you in new directions, RIM could make it a little easier is all I'm saying.
    Last edited by delta_foxtrot2; 12-05-08 at 08:19 PM.
    12-05-08 08:17 PM
  4. patrick.waugh's Avatar
    Yes, I've told Mike that even their new website is difficult to use. They bury stuff down to many levels, and they really need to address this. They are trying, and he has passed this along, but they really publish way more info docs than most, so consider yourself lucky.
    12-05-08 08:45 PM
  5. delta_foxtrot2's Avatar
    Yes, I've told Mike that even their new website is difficult to use. They bury stuff down to many levels, and they really need to address this. They are trying, and he has passed this along, but they really publish way more info docs than most, so consider yourself lucky.
    My highschool math teacher in criticising a math exam the state government was inflicting upon us made a very interesting comment, a good mathematician isn't one that can recall all the formula and so on at will, but one that knows where to reference them and to be able to use the tools at hand so to speak.

    In this case the ability to reference properly is lacking, not the amount of documentation. Although snippets of code accompanying documentation would make things like referencing google less of a necessity The PHP documentation in this respect is one of the better examples allowing users as well as those writing the formal documentation to give hints and tips that relate to the functions, objects, whatever readily accessible.

    A lot of people, myself included, tend to learn best by example rather than formal documentation, we're all different and we can't all be expected to think and learn the same way, this is one reason why schools in general are failing so bad but I won't go there. Anywho full program examples aren't always as useful as quick snippets that easily and quickly show you how to use the particular functionality you are looking up.
    Last edited by delta_foxtrot2; 12-05-08 at 09:45 PM.
    12-05-08 09:39 PM
  6. patrick.waugh's Avatar
    My highschool math teacher in criticising a math exam the state government was inflicting upon us made a very interesting comment, a good mathematician isn't one that can recall all the formula and so on at will, but one that knows where to reference them and to be able to use the tools at hand so to speak.
    While on the surface this sort of thing appears true, don't allow it to become an excuse for not learning something. You see, while you may not need to remember ALL the formula (as you can look up something you forgot) you must know (notice no memory is required if you know something) the majority cold in order to be able to be good. Keep that in mind.

    As an example, as a clinician I was "forced" to learn diagnostic criteria by memory and complained along with others that this was senseless as we could always look things up in diagnostic references. Moreover, we would become familiar with common diagnostic criteria and drugs just by having to deal with them on a daily basis. Thus we complained there was no point in wasting time memorizing them now as we would learn them in the clinic with our patients.

    We were wrong.

    Knowing that stuff cold allowed me to concentrate on being with the patients I treated and allowing my perceptions to be open to other things that they might be trying to tell me. In short, I was a far better clinician from the start. Further, without some basic knowledge you will not have a clue what it is that you don't know, and have no way to know what to look up in your reference.

    Just keep in mind that in school you will be consistently feed one side of things and you must try to remember that this is not necessarily reality.


    In this case the ability to reference properly is lacking, not the amount of documentation. Although snippets of code accompanying documentation would make things like referencing google less of a necessity The PHP documentation in this respect is one of the better examples allowing users as well as those writing the formal documentation to give hints and tips that relate to the functions, objects, whatever readily accessible.
    You might mention this to RIM as a good example for them to work toward emulating
    .

    A lot of people, myself included, tend to learn best by example rather than formal documentation, we're all different and we can't all be expected to think and learn the same way, this is one reason why schools in general are failing so bad but I won't go there. Anywho full program examples aren't always as useful as quick snippets that easily and quickly show you how to use the particular functionality you are looking up.
    I understand completely, but think you will find that if you had a formal background in OO programming you would realize that the "formal documentation" (ie API) tells you much more than you realize or can see at this stage in your skill level. In fact, if you had formal schooling in OO design and programming you would be able to understand quite a bit more from glancing at the API than you now do. I know because I've been there.

    That said, full examples are still very useful, as well as snippets. But see, if you learn OO design then you don't need to start with their example and try to bend it into something it's not. Instead you would be able to have a design already in your head and merely need the API as a reference. In other words, you'd know that do to this you want to use inheritance, and to handle that you'd want to use an interface. This is especially true if you are already familiar with Java Swing.

    To get that level of knowledge, you'll have to study (in or out of school). My suggestion for beginners is to read the Head Start series and learn C# first as you can program on your Windows box nicely and it is more powerful than Java. Once you understand that, then learn Java for programming mobile devices as the OO concepts are the same.

    If one can't answer a question like, "When should you use an Interface vs. Inheritance?" then one really is not going to be successful writing OO programs until one does thier homework.

    Patrick
    12-06-08 01:00 AM
  7. delta_foxtrot2's Avatar
    Knowing that stuff cold allowed me to concentrate on being with the patients I treated and allowing my perceptions to be open to other things that they might be trying to tell me. In short, I was a far better clinician from the start. Further, without some basic knowledge you will not have a clue what it is that you don't know, and have no way to know what to look up in your reference.
    This sort of hits 2 things, actually knowing, and just parrotting stuff you've been spoon fed, knowing doesn't meaning remembering the length, size, width and every other aspect of a tool in your tool kit, it means knowing you have a screw driver and it's used for screwing screws, or you have a hammer and it's used for adding and removing nails, although with hammering muscle memory can take a litteral beating if you aren't careful.

    In any case I was speaking in a simplistic manner and it seems you knew what I meant as well.

    You might mention this to RIM as a good example for them to work toward emulating

    Anyone or where in particular that is most effective at getting this across?

    I understand completely, but think you will find that if you had a formal background in OO programming you would realize that the "formal documentation" (ie API) tells you much more than you realize or can see at this stage in your skill level. In fact, if you had formal schooling in OO design and programming you would be able to understand quite a bit more from glancing at the API than you now do. I know because I've been there.
    I think again you've taken my simplistic statement a little wrong, I wasn't trying to answer the meaning of life here

    In any case this has nothing to do with any paradigm or particular method of programming, most programming done well makes use of reusing code no matter how small, because it can speed up productivity, programming is more like scrapbooking, well from what I understand of scrap booking

    You take bits and pieces and glue them together in the most efficient way possible to make new programs, you aren't making photo albums however

    Again, I'm being simplistic in my analogies here, and trying to keep things simple rather than being overly indepth about it all, meaning of life and all that.
    12-06-08 01:43 AM
  8. delta_foxtrot2's Avatar
    To be completely honest, the biggest stumbling block has been the lack of an SQL option, my day to day duties (from a programming perspective) are mostly PHP/MySQL related stuff, and I normally don't need to be overly concerned about the speed/storage methods, however I found this to be VERY VERY lacking on blackberry's. A few small blobs of data isn't a problem but when you start getting more adventurous you start hitting artificial or capability limitations.

    While my day to day stuff is pretty mundane, which is part of the reason I got into coding stuff on the BB in the first place, that and I didn't like the other geocaching apps, or thought I could do a better job and wanted something to keep giving me a reason for living almost, well that's a bit of a Greek tragedy way of putting it but the reason I got into coding in the first place was I found it fun and exciting to make computers do stuff.

    Yes I know RIM has announced SQLite but this will take a few years to be actually useful, well it's not useful at all at present. So far I've tried numerous ways of storing information and I'm completely unhappy about most, usually if the method works, it's slow, oh MySQL how I long for a ME version of thee
    12-07-08 05:33 AM
  9. patrick.waugh's Avatar
    Well, with the space and processor limitations, for true db apps, you'll be better off putting the bulk of the work on the server side, and then just pushing/pulling needed data to the device. After all, that's the point of a hand held. If you want a full-blown off-line db, then you should be using a laptop.

    A geocache app should get it's data from a server (on a hand-held), and not attempt to store/manipulate the entire db locally. Of course, people think that just because you have a huge amount of storage on the data card that you should have a full blown db. But those are the same people that see the device as an isolated computer, rather than the access to the enterprise servers it was intended to be.

    No matter how much you polish a roof tile, it will not become a mirror.
    12-07-08 07:24 PM
  10. delta_foxtrot2's Avatar
    A geocache app should get it's data from a server (on a hand-held), and not attempt to store/manipulate the entire db locally. Of course, people think that just because you have a huge amount of storage on the data card that you should have a full blown db. But those are the same people that see the device as an isolated computer, rather than the access to the enterprise servers it was intended to be.
    Actually I was going about it in a 2 pronged way, firstly I made a meta vector of the important stuff, lat/lon/name/cache code, then a reference to where to find the rest of the info else where.

    This should in theory work well. The problem with doing everything on a server, is of course, you need network access, un/fortunately geocaching also gets you out and about and in cases to places where there is no network access.

    So there is the problem, how to manage all the information you need/want, but in areas where there is no coverage...
    12-07-08 10:21 PM
LINK TO POST COPIED TO CLIPBOARD