Why JPA? What's the Point?

I'm creating a hobby application to learn new technologies. I have been struggling with the JPA portion for months now. What I would like to know is, what is waiting at the end of the tunnel? If I continue struggling with JPA and finally learn it, what have I gained? How is an application that uses JPA better than one that uses SQL statements for database operations?

Thank you C_Walker and BlueSmurf (is there any other color Smurf?) for taking the time to respond to me.
First I believe that when an application gets to the point that C_Walker's four points come into play there will be JavaBean entity classes that contain more than just the @Entity and @Id annotations.
Also, even in a relatively simple application JPA is not quite as easy to use as C_Walker are indicating.
I am a little confused by point 3. In my hobby application I am assigning IDs in a non-portable way. I didn't think I had a choice, perhaps because I am using the Firebird database. Did I miss something in JPA? (Very likely.)
I hope I understand you to be saying that once I learn JPA and get it implemented, my applications will be more easily scalable.
I do have a question for you. If you were working on a small JSE desktop application where scalability was never going to be an issue, would you use JPA or JDBC?
BlueSmurf wrote:
...because after three months I am still not able to reliably insert or update a record.What are the specific issues with inserting or updating a record?
Specifically I have been plagued with database inserts and updates that work most of the time but not all of the time. Currently I can replicate a condition where an update will correctly modify foreign key fields in a record but not text fields. I know my entity object contains the updated text and my update code is being executed but the database record is not updated and no error messages are generated. Obviously I still don't understand how to update a record in the database. From what I have read on the Web I believe my confusion is common. Even C_Walker's example for updating records indicates using em.persist(). The Java EE 5 tutorial and articles on Sun Web sites don't indicate you need to call persist() to updated data, just commit the transaction. Perhaps not calling persist() is part of my problem.
The intricacies of JPA appear to be much more complex than straight SQLPlease explain what complex intricacies you refer to.
In my experience a properly crafted JDBC SQL statement will work. Using JPA a properly crafted query will not work if your entity class annotations are not correct. Updates may not work correctly if the entity annotations are not correct. Entities can become detached and un-managed even though I have not cleared or closed the EntityManager. Can I use container managed transactions or EntityManagers in helper classes in the EJB environment? Actually, I have already given up on container managed transactions. When a query returns entities with foreign entities, are the foreign entities automatically managed by the EntityManager? What is the correct way to insert a new foreign record? Do I create the foreign entity and relationship, then call persist() on it, or do I merge() the primary entity?
There is a little more to using JPA for persistence than there is to using JDBC. It doesn't seem to make my job easier.
What implementation of the Java Persistence API (JPA) are you using?
Everything I am using is Sun. I am using the GlassFish server with TopLink. I hope the information in the book you have suggested applies. My application is also using Sun JavaServer Pages, JavaServer Faces, and DynaFaces. I don't know if using any of these technologies affects how I can use the JPA or not. I have seen references on the Web indicating it does. If that is true, that is one more JPA complexity to deal with that probably wouldn't apply with JDBC.
If you have gotten this far in this message you are spending too much time reading messages on online forums. :-)
Thanks again to both of you for your replies. You both seem very much in favor of JPA over JDBC. I'm off to buy a book then modify my application, again, based on some more articles I have read on the Web.

Similar Messages

  • Backed up ipod to the cloud (12/25 11am) and then updated. Music is gone and the back up is not restoring?! why? What's the point of the cloud if nothing is there?

    Ipod has been playing music in my car the past two years. new computer this year and new email address. Backed up to cloud. change ID on itunes. Music on my ipod disappeared. Shouldn't it be on the cloud somewhere?! What's the point of this cloud? And is it b/c I can't seem to change my icloud ID to the new one on my ipod settings?

    Music is not stored in your personal iCloud account, or in your device backup.  Music purchased from the iTunes store is in available for redownload as explained here: http://support.apple.com/kb/ht2519.  Music from other sources such as your CDs should be in your iTunes library on your computer and can be synced back to your iPod from there.
    To change the iCloud account on your device you have to delete the exsting account, then sign back into the new ID.

  • Raw 6.7 RC forces use of process 2010.  Why and What is the point?*

    I installed it and every time I try to make a picture use the 2012 item it forces me to use the old one.  I have never seen such a useless go round the pole!  Far as I see it does nothing.  At least LR4 lets you use the thing.  If this is what it does how do I uninstall?  Thank you for the time to answer.  Richard

    Sorry, I do not see the point here.  CR 6.7 is the current one used w/ CS5.  If you have CS5 you need to keep CR 6.7.  My original question was about the interface of CR 7 (in LR4!) and CS5.  Adobe will (would not) not let CS5 use CR 7.   If you use the beta of LR4 like I did then you might see the same question.  The answer to that is that when/if you get CS6, the problem will go away as they then have the same version.  Additionally, it is correct that, using LR4, either beta or purchased, you can use the "render in lightroom" option in the Camera Raw dialog box that comes up and it will then open in CS5 if you choose not to upgrade.  hope ths is a bit more clear and helpful.

  • I am extremely upset. I purchased my iPad in SA and I am traveling in Greece. When I want to make use of the free apps, I get a message that the app is not available in the SA store. What is the point of having an iPad if you cannot use it worldwide?

    I am extremely upset. I purchased my iPad in SA and now I am in Greece. I cannot download free apps as I get a message that the apps are not available in the SA store and only in US stores. When I change to the US store the same thing happens. What is the point of having an iPad if I cannot use it worldwide??? I feel that I wasted my money purchasing it as I specifically purchased it to use when I travel. How can I get access to all the available apps and why are they restricted.

    You can use your iPad worldwide. However, each AppleID is tied to
    a specific country's store. To use the AppStore in any country, you
    must be in that country and have a credit/debit card issued by a financial
    institution in that country with a verified billing address in that country.
    It is the developer's choice which AppStores he makes his app available
    from, and some countries prohibit certain apps.
    To make a purchase from the US store (including downloading a free app
    available in the US store), you must be in the US and have card issued
    in the US with verified billing address in the US.
    You can use your purchases from the SA store worldwide, but you
    cannot make purchases in other than the SA store unless you meet
    the aforesaid conditions.

  • What is the point of the download window if you use stacks?

    Greetings,
    One of the most annoying things about the download window was the fact that the window always hung around after completing dowloads in Tiger when using safari. To me, that was just a time waster of always pressing Apple+W to close that window.
    When Leopard was released, I was excited to realize that one function of the download stack was to recevie downloads from safari after completed. However, after completion, the download window still sticks around and I still have to close it... then navigate to my stack of downloads to mount the image. What is the point of the download window is I use stacks now? Why can't the window disappear after completion?
    //Cheers

    Aaargh!! Me too - it's so annoying! Firefox has a downloads window as well - I just don't see the point of it. I didn't like it in Tiger either.
    As a way to see the progress of downloads, it's fine, but it should at least close when all the downloads are finished, and completed downloads should not display.
    Ideally it should look & work exactly like the Copy window in Finder - the one that comes up when you are copying or moving a large file or number of files from one folder to another.
    Is there a hack that will make it work like that?

  • What is the point of having indented levels in course outlines?

    What is the point of having indented levels in course outlines? It's not possible to add any materials or posts to this. I want to avoid having simply a long list of topics that are difficult to manage. When I create a topic in the outline, I can indent it, but then I can't add any posts to it as it doesn't even show up as a heading in course manager.
    I've been trying to have some kind of logical organisation of materials, but the only thing you seem to be able to do is have a long list of topics.
    Which makes me wonder why the possibility of indenting levels is there at all - it seems to be a completely worthless item.

    I guess the point of the indented lists is to provide the user with some description of the topic’s contents. It's a standard convention in the table of contents of books. It might pay to break your course down into a number of courses if the list of topics is getting too unwieldy.

  • JWSDP and J2EE Integration: Doesn't work. What's the point?

    My problems involve the integration of JWSDP and J2EE as described in these two documents:
    http://developer.java.sun.com/developer/technicalArticles/WebServices/wsj2ee/
    http://java.sun.com/j2ee/documentation/windows_guide.html
    It looks like a long one, but it�s really not that bad. All comments are appreciated.
    I�ve numbered each line-paragraph-section for easy reference later.
    (1) My ultimate goal is to setup a website that displays data from a database. I will use Java, Apache, Oracle, and whatever else I need to create a website that uses servlets, JavaServer Pages (JSP), and JDBC.
    (2) I�ve got four Pentium III computers:
    1. Windows 2000 Server to be the web server (MyWebServer, IP = 10.10.1.1).
    2. Windows 2000 Professional to be the database server (MyDatabaseServer, IP = 10.10.1.2).
    3. Windows 2000 Professional that I use to develop and test (MyDeveloperPC, IP = 10.10.1.3).
    4. Windows 2000 Professional that I use as a client to connect to the website (MyClientPC, IP = 10.10.1.4).
    (3) On MyWebServer I installed the following:
    Java 2 Standard Edition (J2SE)
    Java 2 Enterprise Edition (J2EE)
    Java Web Services Developer Pack (JWSDP)
    The JWSDP tutorial
    Apache HTTP Server
    (4) The files I downloaded and installed are as follows:
    j2sdk-1_4_0-rc-win.exe
    j2sdkee-1_3_1-win.exe
    jwsdp-1_0-ea1-win.exe
    jwsdp-1_0-ea1_01-tutorial.zip
    apache_1.3.23-win32-x86-no_src.exe
    (5) After installing these products, I set the environment variables as follows:
    JAVA_HOME = c:\j2se
    J2EE_HOME = c:\j2ee
    JWSDP_HOME = c:\jwsdp
    Path = c:\j2se\bin;c:\j2ee\bin;c:\jwsdp\bin; [and other previous statements]
    (6) I checked to see that Apache is running as a service. It is.
    On MyWebServer I start Tomcat and J2EE. Both start properly and are operating simultaneously.
    (7) From MyClientPC I open Internet Explorer and in the address box I type:
    http://10.10.1.1
    This displays the page c:\ApacheHTTP\apache\htdocs\index.html.en (The Apache default server installation page.)
    (8) I then enter this address in IE:
    http://10.10.1.1:8080
    This displays the page c:\jwsdp\webapps\root\index.html (The default JWSDP page).
    (9) I then enter this address in IE:
    http://10.10.1.1:8000
    This displays the page c:\j2ee\public_html\index.html (The J2EE 1.3 Default Home Page).
    (10) So far so good. Now I want to test JWSDP as a container for JSP pages.
    (11) I use ant to build the converter app found in the tutorial examples (in folder c:\jwsdp\�\tutorial\examples\gs). I then deploy the converter app to the c:\jwsdp\webapps\gs folder.
    (12) From MyClientPC I open Internet Explorer and in the address box I type:
    http://10.10.1.1:8080/gs
    The converter app works perfectly.
    (13) To eliminate the need to enter the port number, I create a link from the Apache default server installation page to the converter app. From MyClientPC and enter this address into IE:
    http://10.10.1.1
    I then click on the link to the converter app and it works perfectly.
    (14) Question: Is this the best way to display JSP pages without having to enter the port number?
    (15) Now it�s time to integrate JWSDP and J2EE as described in these two documents:
    http://developer.java.sun.com/developer/technicalArticles/WebServices/wsj2ee/
    http://java.sun.com/j2ee/documentation/windows_guide.html
    (16) After I complete this integration I cannot start both Tomcat and J2EE at the same time. This makes sense because they both share port 8080.
    I start Tomcat.
    (17) From MyClientPC and use Internet Explorer to test the various relevant addresses. Everything works the same as it did before except this one:
    http://10.10.1.1:8000
    The page cannot be displayed. The J2EE default home page is not displayed, which makes sense because the J2EE port is no longer 8000; it has been changed to 8080.
    (18) Now I shutdown Tomcat and start J2EE.
    From MyClientPC and use Internet Explorer to test the various relevant addresses:
    (19) http://10.10.1.1:8080
    Displays the JWSDP default home page.
    (20) http://10.10.1.1:8080/gs
    The page cannot be displayed. The converter app no longer works.
    (21) From MyWebServer and use Internet Explorer to test localhost:
    http://localhost:8080
    This displays the J2EE default home page.
    (22) Question: Why does localhost give me a different page than the IP address?
    (23) Question: What was the point of integrating JWSDP and J2EE?
    (24) I want to get the converter app working, so I create a .war file and attempt to add it to the J2EE deploytool (see the two integration documents listed above at section 15.) I create the .war file following the instructions in the JWSDP tutorial:
    http://java.sun.com/webservices/docs/ea1/tutorial/doc/WebApp3.html#64606
    (25) I change to the c:\jwsdp\�\tutorial\examples\gs\build folder.
    I then type:
    jar cvf converter.war .
    A .war file is created.
    (26) I open the deploytool: File, New, Application, and I name it �converter�.
    I attempt to add the .war file: File, Add to Application, Web WAR.
    (27) When I attempt to add the converter.war file I get this error:
    �converter.war does not appear to be a valid web JAR.�
    I tried a few different attempts, all with the same result. I�m stuck.
    (28) I ask again, What was the point of integrating JWSDP and J2EE?
    (29) If this is the preferred configuration, how do I display my JSP pages like the converter app?
    Please help!!!

    The JWSDP tutorial says to be in the �build� folder of the example when issuing the jar command to create the .war file. The build folder is created when I run the �ant build� command.
    Attempt 1 from the command prompt in folder c:\jwsdp\tutorial\examples\gs\build>
    I typed this command:
    jar cvf c:\jaxmservices\converter.war .
    In this case I directed the .war file to be placed in a different folder as you suggested. Here�s the output:
    added manifest
    adding: index.jsp(in = 921) (out= 525)(deflated 42%)
    adding: WEB-INF/(in = 0) (out= 0)(stored 0%)
    adding: WEB-INF/classes/(in = 0) (out= 0)(stored 0%)
    adding: WEB-INF/classes/Converter.class(in = 582) (out= 358)(deflated 38%)
    Didn�t work. Same error as before.
    Attempt 2 from the same folder:
    I typed this command as you suggested (I tried it with and without the final dot):
    jar tvf converter.war
    Here is the output:
    java.io.FileNotFoundException: converter.war (The system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:103)
    at java.io.FileInputStream.<init>(FileInputStream.java:66)
    at sun.tools.jar.Main.run(Main.java:185)
    at sun.tools.jar.Main.main(Main.java:904)
    I tried a few other variations on these attempts with no luck. I�m stuck.
    I�m attempting to create a .war file out of two files: index.jsp and converter.class.
    Now that I�ve integrated JWSDP and J2EE, is there some other way that I can run the converter app instead of a .war file and the deploytool? In other words, if I go back to using ant to build and deploy converter, where would I deploy it so that it will work with J2EE?
    By the way, it doesn�t have to be converter. I�d be happy if I could get any JSP page to work in J2EE after the integration.
    Forever grateful,
    Logan

  • What is the Point of Active Directory/LDAP Specification?

    My college threw an interesting curve ball today and I couldn't give him a good enough answer. The question was simple 'What is the point of active directory'. Now I don't have a lot of exposure to active directory, but I thought I could easily answer. My argument was; If you have a group of objects its easy to look up attributes for those objects using active directory. For example, if you have a group in AD and you want to verify the users of that group you simply look up the member attribute of that group. However he argued, rightly so, that you can do that with a table in a database, why do that in AD. I couldn't give him a good enough answer and now I'm curious. Given the above example, why use AD over a database?
    To me AD is a way to manage a set of resources, whatever they are, by mapping them to objects that have however many attributes. But we could do that in a database, whats the point of AD? Why do you use AD?

    I come from a primarily database centric background. Just like life experience, it casts a certain perspective on problems. Database people solve things with databases. Directory people solve things with directories. Everyone has their perspective. It's not really about who's right and who's wrong. It's about perspective because people are most likely to go with what's familiar when given a problem. It's easy to have this conversation in a educational environment but when you're on the job it's about turf, schedules and careers. My latest job (in which this debate comes up a lot) has been about directories which has been a very enlightening experience because I've been given a gift of perspective. I can put on the directory hat and look at it from another angle.
    To get back to your professor's question. The answer is easy. LDAP (AD or other) is an application above a database. It has a data store behind it, in most cases we can just assume this is a database. So, in short, it's apples to oranges. But if we insist on comparing which makes the better juice, let's look at how we'd make a database like a directory. We could create a data model with an attributes table, an entries table and so on. We can deconstruct what LDAP data structures really are and implement each type as a table with FK/PK relationships and so on. It's sure to work because there are already so many products on the market doing this very thing. But think about the effort now. How are you going to add new users? A front-end? Stored procedures? Scripts? How are you going to keep someone from seeing things they shouldn't? You have to insert an object into all the right tables to ensure that your data is consistent and valid. In a pure database, you're trying to create ACLs on database rows. Now you're writing a full featured application with a lot of complexity. Given enough directory features, the database isn't going to be able to do everything without an external application.
    What is the point of LDAP? It's got hierarchy, ACLs, group of unique names functionality and things that are a layer of abstraction above the data store. I love databases but if you start designing out a directory server from scratch you'll realize it's far beyond comparing a user.ldif to a row in a user table. They are similar in appearance but different types of software.
    Edited by: milkfilk on Dec 16, 2008 11:48 AM
    Edited by: milkfilk on Dec 16, 2008 11:54 AM

  • What's the Point of Photo Stream?

    What is the point of having the option to turn on or off the photo stream if it no longer exists?  If it has been replaced by the recent activity feature then why not have the option to turn on or off the recent activity feature?

    Photo Stream only handles images and your videos are not uploaded or shared with other devices.
    Use iPhoto to import from your device. It can bring in the videos and image files.

  • What's the point of this code?

    Hi, I'm getting an error in a program.
    So I went to look in the code where the error is displayed.
    And I found this:
    z_nbjr = sy-datum - z_fromdt.
    if z_nbjr > 1.
      message is displayed.
    Now, z_fromdt is the value TVARV-LOW for 'ZVDL_VBUK_LAST_RUN', and the message that is displayed is 'Please rebuild index file ZVDL_VBUK'.
    Can anyone explain to me what is the point of this? What is TVARV-LOW?
    And why do they make this check? And how do I rebuild the index file?

    >
    christophe latinne wrote:
    > Can anyone explain to me what is the point of this? What is TVARV-LOW?
    > And why do they make this check? And how do I rebuild the index file?
    As Pushpraj has already pointed out correctly, TVARV is where the variants are stored. It's rather strange that you've never seen fields like LOW and HIGH, because they're also used in the ABAP range tables (see Help for command RANGES).
    Since this is all your custom development, we, unfortunately, cannot know what is the point of all this. I'm guessing that the message to "rebuild the index" is also custom and, therefore, you would need to find a documentation for the program in question or ask your colleagues what this could mean. Also check if there is a long text available for the message (although I doubt that).
    Most likely it's some kind of an internal process of running some other program.

  • What's the point of archiving to ALAC?

    I did all the googling and learned pretty much all I need to know about archiving my 1000 CD collection to ALAC.  And I just successfully ripped my first ever CD to ALAC.
    The only question I never saw answered anywhere was whether or not there is any advantage to ALAC for archive purposes now that hard drives are so cheap.
    I just bought a 2TB drive at Costco for $130.
    The first CD I ripped was 693mb, per iTunes.  Once I ripped it to ALAC, it was 450mb.  That's a space savings of 35%.
    If my average CD has 650mb of data on it ... times 1000 CDs in my collection ... that 635 gigs.
    If I save 35% via ALAC, that's now 412 gigs.  That (now, on a 2TB drive) is a negligible difference.
    So I'm asking ... what's the point?  This isn't 2004 when 200 gigs would have cost a lot of money.
    I understand for playback, ALAC is cool because you've got tags and album artwork.
    But for archiving a CD collection to a hard drive just for the purpose of safe storage ... is there any advantage anymore to converting the file format?
    Why not just use Toast or whatever and save a bunch of disc images?

    John_Neumann wrote:
    Thank you, Ed2345.
    Regarding your last sentence ... isn't making a new physical CD pretty much the same process whether disc image or ALAC?  I understand you just drop an IMG into Toast and hit burn ... or drop an ALAC into XLD and hit burn.  Or is there a step I still don't understand?
    -JOHN
    John,
    It is not actually the same process.  The burn from disc image copies the image, i.e. all contents and structure, onto the CD.  The burn from ALAC (or WAV or AIFF) reconstructs the audio, creates a table of contents, adds its own  gaps, and then burns that to the CD.
    However, if your future intent is to use the songs in a player such as iTunes, the ALAC files will be ready to go, while the disc image will still need ripping.

  • What's the point of redo logs?

    Why does Oracle bother writing everything to redo logs? If it's going to write data changes to the disk, why not just write them once to the data files and be done with it? What's the point of doing it twice? And if it's a redundancy thing, why not mirror the data disks?

    Hemant K Chitale wrote:
    How would you backup a database while it is in use ? You can't lock all the datafiles to prevent writes to them. Yet, transactions may be updating different blocks in different datafiles even as the backup is in progress. Say your backup starts with datafile 1 (or even datafiles 1,2,3,4 in parallel) at time t0. By time t5, it has copied 20% of the datafile to tape or alternate disk backup location. Along comes a transaction that updates the 100th block (somewhere within the 10-11% range) of datafile 1 and also the 60th block of datafile 5. Meanwhile, the backup continues running, already having taken a prior image of the 100th block and not being aware that the block has been changed. At time t25 it completes datafile 1 (or datafiles 1,2,3,4) and starts backing up datafile 5. Now, when it copies the 60th block of datafile 5, it (the backup utility) doesn't know that this block is inconsistent with the backup image of the 100th block of datafile 1.
    Instead of 1 transaction imagine 100 or 1000 transactions occurring while the backup is running.
    Surely, Oracle must be able to regenerate a consistent image of the whole database when it is restored ?
    That is what the Redo stream provides. The Redo stream is written to Archivelogs so that it can be backed up -- no Archivelog file is "in flux" (particularly if you use RMAN to backup the Archivelogs as well !).
    Had Oracle been merely writing to the datafiles alone, without a Redo stream, there is no way it could recreate a consistent database -- whether after Crash Recovery OR after Media Recovery.Interesting point about how redo logs facilitate backups. So what you're saying is that the redo logs help keep the data in the actual data files in a consistent state by only writing full transactions to them at a time. Presumably Oracle will either write out the redo log data to the data files before a backup or will at least prevent the redo logs from writing to the data files during a backup. I always wondered how databases got around that problem of keeping the system available for writing during a backup. I wonder how SQL Server does it.
    Hemant K Chitale wrote:
    Now, approach this from another angle. A database consists of 10 or 100 or 500 datafiles. You have 10 or 100 or 1000 sessions issuing COMMITs to complete their transactions, which could be of 1 row or 100 rows or 1million rows, each transaction of a different size. Should the 1000 sessions be forced to wait while Oracle writes all those updated blocks to disk in different datafiles -- how many blocks can it write in "an instant" ?
    But what if Oracle manages to write much less information -- the bare minimum (called "change vectors") to re-play every transaction to a single file serially ? That would be much faster. Imagine writing to 500 datafiles concurrently, having to open the file, progess to the required block address and update the block, for each block changed in each file VERSUS writing much lesser information serially to a single file -- if the file is full, switch to another file, but keep writing serially.As to your second point, I don't really have a good enough understanding about the format of redo logs vs. the data files to follow you totally. Are you saying that it takes more time to write to the data files because you have to find the proper place in the B-Tree before you can write to it? And that doing that is slower than just opening the redo log and always appending new information to the very end? Maybe so, but it seems like all transactions having to write to a single redo log in serial would slow things down since there would be a ton of contention for one file. Whereas with the data files, you could potentially have several transactions writing to different files simultaneously (provided you hardware would support doing that). And it seems to me like a change vector would contain a lot more information than a field value, but, like I said, I'm not really familiar with the format.

  • What's the point of updates - if..

    Why do the upgrades tend to mess up my other applications? DVD Studio Pro - Bluetooth. I just feel what's the point of getting upgrades now. I did the Pro Application Support application which did take care of my DVD SP - however shouldn't upgrades be exactly that - UPGRADING - not have causes more problems. Taking time away from the work that needs to be done. Sorry - just had to rant a bit.

    If you do a search on these forums it would probably boil down to doing these things.
    Permissions Repair
    Whenever a program that's installed places items into the /Library folder and Applications folder, it often has to amend permissions in order to do so which is why authenticating as an 'Admin' user is required so that it's able to carry out these amendments and place files where they should be and have their correct permissions assigned. Sometimes this change is not always corrected and may affect other programs operation. To help reduce side affects like normal User account being able to change and delete programs in the 'Applications' folder. Disk Utility located in /Applications/Utilities has a 'Permissions Repair' routine which ensures that the proper permissions are assigned based on their package rules.
    Cron Scripts
    These are scripts which the OS usually initiates itself, but performing them manually by using the Terminal can be beneficial.
    Good programs worth looking into are, Onyx available at www.macupdate.com
    Running it's maintenance scripts means you don't have to go into the Terminal manually and it does it's stuff very well, I've used it since 10.2 and never had a problem with it, it's updated regular, it's free and better than similar programs doing the same both free and those that charge.
    Safe Boot
    Starting up the computer after the chime and holding the 'Shift' key down, runs the fsck command, which verifies and fixes any problems with a startup volume, though not all, it also deletes the font cach and databases, so some issues with fonts can be helped by doing this, also if you seem to be getting conflicts in software, this can help to make sure the Apple components are working fine as it only loads the minimum 'kexts' and drivers so the computer operates, almost the equivalent in OS9 but not exactly.
    There's lots more but doing these few things can help keep a system in shape, especially if no time was spent doing it beforehand. A note though, doing Permissions repair is not part of a 'Regular' maintenance routine, if you see message like 'Do not have permission' then it's worth doing it then.
    Mark

  • What is the point of Apple TV anyway?

    I must be missing something but I don't see the point of the Apple TV:
    If one has to convert all video, presentation and other material to run on Apple TV. What is the point?
    All these converted videos, etc. don't only take up time to convert but take up unnecessary disk space too. What is the point?
    Surely Apple will make future versions of its DVD Player, iLife, and iWorks, especially Keynote, compatible with Apple TV so that one can stream DVD's, Keynote presentations, etc. directly to a TV via Apple TV without having to "rip" ones DVD's and convert them or convert all ones presentations into QuickTime. Otherwise, what is the point?
    As for movies on iTunes tell me what proportion of the population buy their movies? Most movies are only worth watching once, if that, so most of us rent them for far less than the cost of buying. You can't rent movies for Apple TV. So, what is the point?
    For teaching situations it would also make sense for Apple to make it possible to "stream" the Mac desktop, including running applications to a large screen TV to allow it to be used as teaching tool in lecture theatres, classrooms, etc. I say it again, what is the point?

    If one has to convert all video, presentation and
    other material to run on Apple TV. What is the
    point?
    One doesn't have to convert all video. A great deal of compatible MPEG-4 formatted content (including MPEG part 10, a.k.a. H.264) is available from diverse sources, including Apple's iTunes Music Store. One interesting source you may not be aware of is video podcasts. Just as audio podcasts have become popular as a distribution format for audio content, so too now is the video version. An easy way to sample what is available is through the "Apple TV Showcase," accessible from the Podcast section of iTunes Music Store.
    All these converted videos, etc. don't only take up
    time to convert but take up unnecessary disk space
    too. What is the point?
    Nothing says you have to keep multiple versions of this content on your hard drive(s). In fact, H.264 is the current state of the art in video compression, offering higher quality vs. file size than any other codec. Most people find that even for HD content up to 720p24, Apple TV's 5 Mbps limit produces either no visible compromise or so little that the file space saved is well worth the tradeoff. Moreover, the number of standard DVD's (which use MPEG-2 compression) that contain content that can't be re-compressed in H.264 at <5 Mbps with no losses at all are few & far between.
    <div class="jive-quote">Surely Apple will make future versions of its DVD
    Player, iLife, and iWorks, especially Keynote,
    compatible with Apple TV so that one can stream
    DVD's, Keynote presentations, etc. directly to a TV
    via Apple TV without having to "rip" ones DVD's and
    convert them or convert all ones presentations into
    QuickTime. Otherwise, what is the point?
    Only Apple can say what Apple will do, but remember that there are a number of issues involved here, not the least of which is DRM & the legality of providing software that defeats protection schemes, that may prevent it from doing what consumers would like it to do.
    As for movies on iTunes tell me what proportion of
    the population buy their movies? Most movies are only
    worth watching once, if that, so most of us rent them
    for far less than the cost of buying. You can't rent
    movies for Apple TV. So, what is the point?
    Not that long ago, most industry pundits thought the consumer market for buying commercial releases of movies or TV shows was insignificant -- that for instance consumers would prefer to see movies in theaters & have no interest in buying them afterwards, or that they would only be interested in rentals. I don't know if you have noticed, but they were wrong ... to the tune of billions of dollars in revenue per year that often exceed the revenue from theatrical releases.
    Some of these same pundits more recently predicted that selling TV shows by the episode, particularly at less than HD resolution, would have no marketing potential -- after all, why buy something you could watch or record for free? Once again, they were wrong. It turns out that some people just like collecting episodes, others are eager to buy a missed episode of a favored show, still others are willing to pay for selected cable content but not for cable TV, & so on.
    At the same time, bricks & mortar rental chains like Blockbuster (the world's largest) have seen profits plummet, prompting ever greater reliance on other products, including in-store sales & their own online services, still oriented toward rentals. Other retail giants like Wal-Mart have tried online rental services, too. So far, all these rental-oriented services have yet to exceed "also ran" status compared to Apple's success.
    Put simply, the point is renting is becoming less popular & ownership --particularly when it is comparatively easy & cheap -- more popular.
    For teaching situations it would also make sense for
    Apple to make it possible to "stream" the Mac
    desktop, including running applications to a large
    screen TV to allow it to be used as teaching tool in
    lecture theatres, classrooms, etc. I say it again,
    what is the point?
    The point here is that products that do this already exist, but the market for them is very limited compared to the one the much cheaper Apple TV targets.
    Put another way, what "makes sense" to consumers (the fabled $100 laptop, for example) doesn't necessarily mean it makes sense in commercial terms, no matter how badly people want it or how well it would sell.
    iMac G5/2.0 GHz 17" ALS (Rev B)   Mac OS X (10.4.9)   1.5 GB, Kensington Trackball

  • What is the point of having a smartphone if nothing ever works?

    Before my GS3 updated to kitkat my apps would crash all the time. My phone updated last week and now the apps work but in what used to be areas with strong steady 4g coverage I have no data. So annoyed. I can turn my data on and without touching it I'll have 4g for a minute and then none before coming back for 5 seconds only to go out again. What am I paying for?  My office doesn't have wifi and I have a large data allowance but what is the point if I can never use it?  I do a lot of travelling and use my phone as a GPS but as I have no no longer have reliable service anywhere even in Philadelphia where it was a constant 4g.  Not to mention the GPS is unreliable as well. Waze is an amazing GPS but to have a phone that doesn't work half the time is frustrating. I should just go back to my old flip phone that lasted me 2 days on a single charge. My phone is due for an upgrade in a few months. Maybe I'll save some money and get something that isn't a smartphone and I won't have to worry about paying for the data and everything else that comes with having a smartphone.

    I can understand that Verizon did not make the phone.  My satellite provider did not make the dish nor the receiver I use either, but if they malfunction and make it to where I cannot receive their service (the satellite signal) then the satellite provider assists in getting equipment that works.  If it is a software issue, they have more sway with the provider of said software, as the representative and mass user of the software, than individual customers do.  So if Verizon is receiving multiple complaints from their customers, complaints that their customers are unable to use the service that they are being paid to provide, then they can go to manufacturer to request the fix.  Who do you think Google or Samsung is going to listen to more, an individual who received a phone from a 3rd party (Verizon) or the entire company who purchases those items (phones and software) en-masse and thus can more affect their bottom line?  As another example... when you purchase a car and the seatbelt malfunctions, do you go to the seatbelt manufacturer or back to the car maker?  Should each person who has a seatbelt malfunction go to the seatbelt maker or should the car maker issue a recall on all affected vehicles and offer a fix, provided from the seatbelt maker?  When I go back to Samsung or Google, and IF they listen to me and initiate a fix, what priority is Verizon going to make it to get it out to their customers?  Or is Verizon relying upon each disgruntled user to go find their own fix without it affecting them (Verizon) at all?  Other service providers have already started issuing fixes according to my research... and if Verizon delayed pushing this update out for so long (as I've seen complaints that it was), why did they push it with these known issues and not insist before they pushed it out that Google or Samsung fix it first so as not to get these complaints?  Sorry, but Verizon is at least partially responsible for my inability to use their service, as the provider of the equipment and software that I need to be able to utilize their services.  I didn't go out on the black market and purchase this phone, I bought it at a Verizon store.  I have not rooted the phone or in any way done anything other than add about 6 apps to the phone from the way it was provided to me by the store, and their required update - pushed across their cellular and data service - is what has resulted in my phone no longer being functioning.  So yes, while Verizon may not manufacture the phone or the software, they are in fact the provider of said items to me and thus are responsible, and should be pushing back to Google or Samsung to get a fix for their customers.  I was hoping to hear that Verizon was doing just that, but it does not appear to be the case.... Yes, other providers may be having the same issue, but I've seen them working with their customers to get a solution, providing CUSTOMER SERVICE to their customers, and that is all that I and others like me, have been looking for from Verizon in this kitkat fiasco and which they have been failing at.

  • Capture Conv: rev/reverse - what's the point?

    Take this example from http://www.langer.camelot.de/GenericsFAQ/FAQSections/TechnicalDetails.html
    public static List<?> reverse(List<?> list) { return rev(list); }
    private static <T> List<T> rev(List<T> list) {
         List<T> tmp = new ArrayList<T>(list);
         for (int i = 0; i < list.size(); i++)
              list.set(i, tmp.get(list.size() - i - 1);
         return tmp;
    }Now, I've read the JLS, the Generics tutorial, the JOT.fm article and the langer.camelot.de FAQ, but I can't for the life of me figure out one thing:
    What's the point!? The wildcard version of reverse returns List<?> whereas the naive alternative (public static <T> List<T> reverse(List<T> list)) returns whatever you pass in. That seems much more useful! You pass in a List<String> and you get back a List<String> The JLS says that the templatized version "is undesirable, as it exposes implementation information to the caller."
    My question is this: is that the real reason? It's not, right? What implementation information is exposed? The type parameter? How is that bad? Is it bad enough to reduce the functionality of the method?
    I have a hunch that "exposing implementation information" is low on the tradeoff scale - and that the real reason for the wildcard version is backward compatibility. If you only had the templatized version, old code that tries to pass in a plain-old List to reverse would now generate unchecked warnings because of the conversion from raw List to the formal parameter's type List<T>. The preferred wildcard version doesn't generate unchecked warnings because the conversion from raw List to List<?> is 'safe'.
    Isn't that right? The reason that "public static <T> List<T> reverse(List<T> list)" is bad is not because it exposes implementation details, but because it causes old code to generate unchecked warnings, non?
    If I'm right, then my follow up question would be: who cares? Who cares if old code generates unchecked warnings? Isn't that fair? - a sort of gentle pseudo-deprecation of raw types?
    And furthermore, if you'll allow me to smush several questions together, why the preoccupation with eliminating unchecked conversions all over the place? Doesn't the bytecode that comes out look the same either way? What benefit does an unchecked-conversion-free program or CompilationUnit have over one with such conversions? Does provability make possible some future JVM optimizations where some casts or instanceofs can be eliminated? I don't really see how, unless we're talking about some wacky static compiler. Why go to so much trouble to avoid unchecked conversions?

    Angelika, you caught me. I was writing about the 'void reverse(List<?>)' example from the JLS when I went back to your page and realized that your example had a return type. It confused the matter slightly, but not enough to detract from my main point, I thought. In fact, it seemed to prove my point - to provide a good counter-example to the JLS reasoning! But let me start from the beginning:
    In the draft JLS, it mentions that<T> void reverse(List<T> list) {} is preferable to void reverse(List<?> list) {} which is "undesirable" because "it exposes implementation information to the caller."
    What implementation information? The only difference between the two is that the 'unknown element type' has a different name. '?' as opposed to 'T'. In both cases, it means the same thing! A List with some unknown element type.
    Whether it's called 'T' or '?' is inconsequential, it seemed to me. Perhaps one could argue that one is 'prettier' than the other but I didn't see how any implementation detail was exposed.
    I didn't see any real reason to prefer the wildcard version over the other, except the reason I gave: the wildcard version avoids unchecked warnings for legacy code.
    I now see that there is one other important difference - the type parameter T is actually part of the method signature. That could have important implications for overriding. In that sense, the 'List<T>' version does 'expose' and impose an unnecessary implementation constraint. I haven't thought through how that could be a problem, but I certainly can imagine that it might.
    However, neither the 'avoid-unchecked-warnings-on-legacy-code' reason nor the 'typeparameter-is-part-of-method-signature' reason is mentioned in the JLS example. Without those two pieces of information, the preference just seems arbitrary.
    So that was my initial question: "am I incorrect? The dont-expose-implementation-information reason seems much less important than the avoid-legacy-warnings reason - shouldn't the JLS mention *that* instead?"
    THEN, to add to my feeling, I noticed that the similar-looking example on your page involved a return type of List<T>. It seemed to follow the JLS recommendation to its detriment! The preference in the JLS example seemed arbitrary yet harmless, but here it seemed actually wrong! In trying to avoid the hand-wavy concept of 'exposing implementation information to the caller', the usefulness and semantics were ruined! That seemed like alot to give up, just to spare legacy people some unchecked warnings. I thought this just drove home my original point about the JLS example - but instead it just made my question a confusing mixture of two different issues. I should have realized that and left the FAQ version out of the discussion.
    Given all of that, consider now only the JLS's 'void reverse(List<?> list)' case and let me ask this refined question:
    I think the JLS should say that '<T> void reverse(List<T> list)' is undesirable not because of the vaguely unconvincing reason that "it exposes implementation information" but rather because of these two explicit reasons:
    . the type parameter is part of the method signature (which can cause strange 'gotchas' with overriding) and because
    . it causes previously acceptable code to now unnecessarily generate unchecked warnings.
    Does anyone else think differently?
    POSTSCRIPT:
    Of course, the thing I didn't realize was that that code snippet in the FAQ is crazy. ie. 'List<?> reverse(List<?> list)' is absurd! You would probably never do that. What kind of reverse method would return a List of a different parameterization than it gets? That would be a really weird reverse method, I think.
    Given that, it seems to me that you should modify the 'reverse' snippets in the FAQ, under sections "What is the capture of a wildcard?" and "What is a wildcard capture assignment-compatible to?". I think you should do one of three things:
    1. Make rev/reverse return 'void'. Then your example code becomes the same as the JLS, the wildcard version makes sense, and preferring it makes sense too.
    2. Remove one of the two methods and only have 'public <T> List<T> reverse(List<T>)' which gives the correct implication.
    3. Keep the example but give the methods a different name and purpose than 'reverse', like
    'List<?> examineListAndMaybeReturnOneWithDifferentElementTypes(List<?> list)'. :)

Maybe you are looking for

  • Frozen and can't connect to Itunes because of passcode??

    After trying to repower the Ipad it brought up the first screen of the cable to itunes. I connected the iPad to itunes to which it tells me it can't connect because of the passcode. Well since it is at the initial screen it won't let me enter the pas

  • Skipping update statement

    i am using 'For Update' statement to lock a record in a table and then updating that table through another update statement, like this in a procedure in my Developer Suite 9i application:- 1)SELECT TOTAL_OUTSTANDING INTO TEMP_OUTSTANDING FROM PPBS_DI

  • Send Email with diff user id .

    hello experts ,                   i have a program which can send mails to other user but it by default takes my used id as sender's mail id . This program is working fine , but is there any way possible to hide my sender's mail id and show some othe

  • Deep Insert in Json Format

    Hi Team, I am facing  issue in JSON format which i can achieve using XML format for Create Deep Insert.Can you please have a look and provide your inputs. SP is 740 SP4 Here for below, Navigation name is Nav2ReqProducts. I am getting error while pass

  • Lync Web App will not load and does not error out

    Hi, Recently I've been receiving invites to Lync 15 meetings. I am able to join the meetings and things work fine until somebody shares their desktop or a presentation. Then I get a message saying Windows firewall has blocked an app and asks if I wan