Which is better as UI technology among Flex and Oracle ADF for oracle SOA s

We have one application which is using oracle’s Service oriented Architecture (SoA) suite. Currently, there is a debate on the technology for UI in the new architecture that will be rich, easy to maintain, scalable and integrates well with SOA suite.
We have two options one is Flex and other is Oracle ADF.
UI part contains number of graphs, tabular and charts data. So it would be great if any one suggest which technolgy will be better for UI point of view.
Thanks in advance.

Hi,
I looked at the demo
http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/ADF112/ADF112.html
It's interesting.
However, I would point out two things:
1- Before Oracle, Sun failed with UI technologies: there was AWT then Swing then Java FX. None of them was a star. The only place where Sun really won the UI war is the Bluray Disc format.
2- About half of the RIA in the financial/banking industry are developed with Flex, the other half is developed with Silverlight / WPF. HTML 5 is being taken up by some, but you still end up with the usual problem of having to pick up an AJAX framework, and get tied to a vendor anyway in the end. Never heard about any project developed with Oracle ADF yet.

Similar Messages

  • Which is better as UI technology among Flex and Oracle ADF for oracle SOA suit

    We have one application which is using oracle’s Service oriented Architecture (SoA) suite. Currently, there is a debate on the technology for UI in the new architecture that will be rich, easy to maintain, scalable and integrates well with SOA suite. We have two options one is Flex and other is Oracle ADF. UI part contains number of graphs, tabular and charts data. So it would be great if any one suggest which technolgy will be better for UI point of view. Thanks in advance.

    Hi,
    I looked at the demo
    http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/ADF112/ADF112.html
    It's interesting.
    However, I would point out two things:
    1- Before Oracle, Sun failed with UI technologies: there was AWT then Swing then Java FX. None of them was a star. The only place where Sun really won the UI war is the Bluray Disc format.
    2- About half of the RIA in the financial/banking industry are developed with Flex, the other half is developed with Silverlight / WPF. HTML 5 is being taken up by some, but you still end up with the usual problem of having to pick up an AJAX framework, and get tied to a vendor anyway in the end. Never heard about any project developed with Oracle ADF yet.

  • Which system is better making the TDC among DEV and PRD

    HI,
    which system is better making the TDC among DEV and PRD what are the advantages and disadvantages
    thanks in advance
    subbu

    hi arif
    TDC means Transport Domain Controller
    it is the system which contains common transport directory and which administer the all the systems taking part in TMS.
    if any other informaion regarding this welcome.
    SUBBU
    Message was edited by:
            subbu chennuru

  • Hi, I'm using a Mac Pro here. I am trying to connect it with my NAS hard drive. But i could not connect to it because i have an ethernet which connects to the intranet in my company and Air Port for the internet.

    Hi, I'm using a Mac Pro here. I am trying to connect it with my NAS hard drive. But i could not connect to it because i have an ethernet which connects to the intranet in my company and Air Port for the internet and it could not detect the the ip address after i input the correct address on "Connect to Server" window. Please help! Urgent! Thanks

    I did not say it is not possible.
    I said if your company networks are monopolizing both ports, you should talk to them about what options are available.
    Maybe you can get the company Intranet over wireless if you change some configuration items such as Subnet Mask.
    Maybe you can get on the Internet over Ethernet.
    You really need to ask them, and do not let them blow you off because you have a Mac. If they balk, ask them how it would be done on a PC (becasue it will be the same on a Mac).

  • Which is better? Code comparsion of performance and style

    Recently I run into a discussion over a small piece of code. Could help me which is better, either in performance or coding style? The code is not complete, the question is the use of local cancellationNumber variable.
    public String cancelAction(/**/) {
    /* some code */
            String cancellationNumber = result.getCancellationNumber();
            if (empty(cancellationNumber)) {
                throw new Exception("Did not receive a cancellation number!");
            return cancellationNumber;
        }or
    public String cancelAction(/**/) {
    /* some code */
            if (empty(result.getCancellationNumber()) {
                throw new Exception("Did not receive a cancellation number!");
            return result.getCancellationNumber();
        }

    Yes, I know profiling can be misleading, also compiler optimization adds to the picture. However seeing the numbers differentially, I think there is still some information, which is faster, even if taking it completely out scope. I didn't paste the code, because it's so trivial. I run the two methods in a loop with same arguments.
    With increased loop count, the difference is 6-7%, cancelActionWithLocal being faster. But this can be pointless, I know.
    package org.helloprofile;
    import static org.helloprofile.Util.empty;
    import java.util.Locale;
    public class CUT {
        public String cancelActionWithoutLocal(Locale locale, String email, long itineraryId, String confirmationId) throws Exception {
            Result result = new Result();
            if (empty(result.getCancellationNumber())) {
                throw new Exception("Did not receive a cancellation number!");
            return result.getCancellationNumber();
        public String cancelActionWithLocal(Locale locale, String email, long actionId, String confirmationId) throws Exception {
            Result result = new Result();
            String cancellationNumber = result.getCancellationNumber();
            if (empty(cancellationNumber)) {
                throw new Exception("Did not receive a cancellation number!");
            return cancellationNumber;
    }Thanks for the comments!

  • Getting Started with Flex and Java RPC for Free?

    Good Morning,
    Please forgive me if this is the wrong place to post- I'm
    just having trouble wrapping my head around what is and what isn't
    available for free in the Adobe Flex world.
    I've been working on an application for the last few months
    using Open Laszlo (
    http://www.openlaszlo.org/),
    but I've been running into frustrations with their lack of
    up-to-date documentation, and I've found it difficult to bring new
    people into the project, since the set of users who know it is so
    small.
    While I do like that I can compile to DHTML, that's not
    enough to hold me there.
    I've been looking into Adobe Flex, and it seems like a good
    alternative- I'm comfortable paying $500 for the IDE-
    I use Eclipse currently, so having a plugin for it sounds
    ideal. That said, when I look into ways to talk to a Java backend,
    everything points to Flex Data services, which is now part of some
    larger package costing tens of thousands of dollars.
    I don't need advanced messages, or data synchronization, as
    nice as it would be.. All I really need is the ability to call a
    Java method, and get an object back, which I can then work with in
    Flex.
    I see the forum message that asks
    "How
    do I 'do' Flash for free?, but this only talks about RPC very
    broadly. Given that the message is from over a year ago, I thought
    it would be better form to start a new topic, than replying to it.
    Can someone explain to me what components I'd need, both on
    the client side and the server side?
    Is there a set of manuals that explain how to do Flex RPC
    from Java?
    Can Flex compile to any versions of flash earlier than 9?
    (Flash 6/7 is still in wide deployment)
    Do I want to start using Flex 2, or Flex 3? Are the
    components compatible? Will the F3 docs be ready?
    Finally, where can I purchase the Charting components? The
    ability to create charts such as
    this
    overcome a decent price barrier.
    Thank you for any insight you can offer, and direction you
    can provide.

    quote:
    Originally posted by:
    cunparis2day
    On our project they made a proxy in java where they passed in
    the name of the method as a string, and an array of objects for the
    parameters. The proxy then sent the request via RMI and returned
    the result. Kind of a hack but they say it worked (I wasn't here
    when they did it).
    What did the RMI talk to? Are there docs on this?
    quote:
    Another approach, generate the proxy from the java
    interfaces. Or better yet, generate it dynamically with CGLIB.
    quote:
    Finally, I'm investigating using Mule for the integration.
    Let me know what you think about those suggestions.
    We have our own messages, but how would MULE translate them
    to Flex?
    You know quite a bit more about this, can you take a step
    back, and explain?

  • What is the state if flex, and air development for air

    Hi,
    1- I wanted to know what is the state of affairs in flex and air as cross platform mobile development solutions?
    2- Are they still worth learning and spending time developing mobile application using these technologies?
    Becuase all the documnetation forum posts and most of the help material I come across is almost a year old.
    Any guidance in this regard would be greatly appreciated.
    Thank you.

    The right place to look for updates on Flex is http://flex.apache.org
    The good thing is that activities are still going on. The bad things are that:
    - Unless the dependency to Adobe air is cut, Flex as an open source project is bound to fail imho. See FlexJS for updates on that point
    - Current activties seem to be focused around making things more polished rather than working on hard stuff (typically developing an independent and open source runtime execution engine => flexJS)
    So...
    For a small company, home development, not so business critical applications, I recommend warmly Flex, since it is one of the best (if not the best) cross-platform mobile development environment (Very good performances if used appropriately, very good programming environment, lots of components, structured language, lots of documentation and tutorials, easy to design, etc.)
    for business critical applications... The risk is high !

  • Flex and BlazeDS Compile for Deployement

    Hi,
    I've been following the Flex + BlazeDS tutorial on the Message Service from adobe to start learning working with blazeds. Everything worked out great on the local server of course but I got stuck when it came to moving the files to a remote server. I've looked around quite a lot and found out it's because the compiler feeds the services-config.xml upon compile and at lease in my case won't take and external file. The solution everyone has been posting on the net is writing the channels in actionscript within flex and feedin it the valid endpoint that would be found in the xml configuration file. That's all nice and dandy but everyone has been talking and showing examples of this being done for RemoteObject and I haven't managed to find any examples for Messaging.
    Can anyone help me out with an example on how to deploy my application to a server? (either by coding the channels in AS or otherwise) The application itself is pretty basic...
    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
          xmlns:s="library://ns.adobe.com/flex/spark"
          xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="200" minHeight="480" creationComplete="consumer.subscribe()" width="250" currentState="EnterName">
    <fx:Script>
      <![CDATA[
       import mx.messaging.events.MessageEvent;
       import spark.events.TextOperationEvent;
      ]]>
    </fx:Script>
    <s:states>
      <s:State name="Chat"/>
      <s:State name="EnterName"/>
    </s:states>
    <fx:Declarations>
      <s:Producer id="producer" destination="chat"/>
      <s:Consumer id="consumer" destination="chat" message="messageHandler(event.message)"/>
    </fx:Declarations>
    <fx:Script>
      <![CDATA[
       import mx.messaging.messages.AsyncMessage;
       import mx.messaging.messages.IMessage;
       private function send():void{
        var message:IMessage = new AsyncMessage();
        message.body.chatMessage = user.text + ":" + " " + msg.text;
        producer.send(message);
        msg.text = "";
       private function messageHandler(message:IMessage):void{
        log.text += message.body.chatMessage + "\n";
      ]]>
    </fx:Script>
    <s:Panel title="Chat" width="100%" height="100%">
      <s:TextArea id="log" height="377" x="10" y="10" width="228" includeIn="Chat"/>
      <mx:ControlBar width="246" height="52" x="1" y="395" includeIn="Chat">
       <s:TextInput id="msg" width="100%" enter="send()"/>
       <s:Button label="Send B" click="send()"/>
       </mx:ControlBar>
      <s:TextInput includeIn="EnterName" x="60" y="177" id="user" />
      <s:Button includeIn="EnterName" x="87" y="207" label="Start Chat" id="chat" click="chat_clickHandler(event)"/>
      <s:Label includeIn="EnterName" x="57" y="157" text="Please Enter Your Name"/>
      </s:Panel>
    </s:Applicatio>
    And besides that in the messaging-config.xml file on the server a destination with the id="chat" is created and that's it.
    Any help or pointing in the right direction will be greatly appreciated.
    Thank you,
    Nick

    Update:
    Ok...I finally figured out that by replacing the tokens in the services-config.xml file with the physical address of the server everything works.
    Anyway...this means the application needs to be compiled everytime it is moved to a new server or even a different folder on the same server for that matter. Is there any way to pass the {server.name}, {server.port} and {context.root} tokens to the application at runtime for messaging?
    Thanks,

  • Flex and mobile development for webOS?

    Do the 'Hero' and 'Burrito' products provide the ability to implement Flex code for the webOS platform?  Or is the webOS platform not supported yet?  If Flex isn't ready for the webOS platform now, then I suppose I will need to use JavaScript and HTML 5 on webOS for now.
    The webOS platform is the go-forward strategy for Hewlett-Packard for both smart phones and tablets.

    The right place to look for updates on Flex is http://flex.apache.org
    The good thing is that activities are still going on. The bad things are that:
    - Unless the dependency to Adobe air is cut, Flex as an open source project is bound to fail imho. See FlexJS for updates on that point
    - Current activties seem to be focused around making things more polished rather than working on hard stuff (typically developing an independent and open source runtime execution engine => flexJS)
    So...
    For a small company, home development, not so business critical applications, I recommend warmly Flex, since it is one of the best (if not the best) cross-platform mobile development environment (Very good performances if used appropriately, very good programming environment, lots of components, structured language, lots of documentation and tutorials, easy to design, etc.)
    for business critical applications... The risk is high !

  • Which MacBook Pros are safe to buy used and not recalled for video graphics/display failure (due to overheating)?

    I've had some bad luck with MacBook Pros lately. I bought a 2010 model but it was effectively a Total Loss because of a vehicle accident. From searching with Google, people have reported logic board failures. Who knows if mine would've failed, too.
    Then I bought an older 2009 MacBook Pro and that eventually failed due to the graphics chip failure. There was a recall on it but the problem occured JUST after the recall period expired. I don't have a microwave solder lying around or a proper setup to fix the problem myself.
    Now, I im in the market for a used MacBook Pro, as a gift (I can't afford a new one right now) (with the luck I have, I'm basically done with them but the person wants one).
    I've seen some 2011 models priced quite attractively, which caused me to do a quick check and find that the (early) 2011 models also have video graphic failures. I don't get it. I understand paying for the name, but the name also has to have reliability and you don't hear about video graphics failures from some of the more well known PC manufacturers..just saying.
    I'd strongly prefer to not purchase any retina models, if at all possible. I want a mechanical SATA HDD and an optical drive. I oppose proprietary components -- as I understand it, the retina models make it nearly impossible to upgrade.
    Which used MacBook Pros are safe for purchase? In other words, which ones do not have recalls or are susceptible to video graphics/display failures? I don't want to put the money down for one, only to hear it kicked the bucket and it needs service and is out of warranty.
    Thank you for your time.

    WindowsGreaterThanUnix wrote:
    I've seen some 2011 models priced quite attractively, which caused me to do a quick check and find that the (early) 2011 models also have video graphic failures.
    I have an early 2011 MBP and have haad zero problems since it was new.

  • Flex and multilanguage support for webUI

    I am looking into Flex as the next-gen development system for
    our web apps. I do not know very much about Flex at this time, but
    I need to find out how Flex handles multilanguage capability.
    Currently, we make heavy use of JS and DHTML for our UI
    design, and to support different languages we separate out all our
    strings into individual files (utf8) that are translated. The
    client-side JS will make a call to the server to determine the
    user's language preference and load the appropriate string file
    when rendering the UI.
    I need to know if something like this is possible in the Flex
    environment, or how Flex handles multilanguage string separation.
    Thanks

    Hi Lalo,
    well, I am still not sure what your problem is - but....
    The selection of the Code Group for example happens in:
    BAPI_CODEGROUP_CODE_GETLIST
    Well, this method is called in ALM_ME_CODEGRP_GETDETAIL and there you find the line
    langu              = sy-langu
    so this defines the language.
    Perhaps this helps you to solve your issue and understand the process a little? So you are right - it is the GETDETAIL handler as such - but the language in there is defined by sy-language as you see. Change the language and all should be fine.
    Regards,
    Oliver
    Edited by: Oliver Kaluscha on Jan 30, 2008 2:19 PM
    oh - just to mention - MAM017 and so on are running under the RFC user in the backend - so the language of the current user on the PDA will not really help here I think.
    Regards,
    Oliver

  • Understanding JavaFx, Flex, and Openlaszlo offerings for RIAs

    I'm interested in improving certain aspects of my UI and I recently stumbled upon javafx/flex/openlaszlo (OL). I'd like to understand:
    1. What is needed to develop & deploy javafx. Does it have "gotchas" like Flex, where the sdk is open source, but development and deployment tools are proprietary?
    2. How easy is javafx to pickup?
    3. Specifically, I'd like to use javafx ( or flex/OL) to either augment or replace an editable table I created using js, ajax, html, and css. Is this the type of thing javafx can/should be used for? Are there any drawbacks or pitfalls to using javafx for this rather than straight js, ajax, html, css?
    4. How does javafx compare to flex/OL (as this is a java forum, I do understand that people may not have used flex/OL; but any subjective/objective feedback is helpful)?
    Thanks.

    Does it have "gotchas" like Flex, where the sdk is open source, but development and deployment tools are proprietary?Currently, yes... Only the compiler is open source, the runtime is currently closed. Although it isn't unreasonable to think it might be (at least partially) opened in the future, once it is stabilized.
    Development: can be done with a simple editor and the compiler, and deployment with the command line utility. That's what I use. You can also use NetBeans (open source, decent support of JavaFX) or Eclipse (open source also, support of JFX is a bit lacking, from what I know).
    2. The base is quite easy. You have to forget some habits (from Java in general), you have to know some workarounds, but basically it isn't really hard to learn.
    3. Table support is currently light, it is planned to be more comprehensive. Currently, you can use a number of third party table components. Or if you don't care about mobile phone support, you can still use Swing components.

  • Open GL Vs Quartz - Which is better for 2D game development?

    Hi,
    I am new to iphone game development. I want to create 2D game. Simple game with objects moving around.
    I never used Open GL as well as Quartz. For this game I am planing to study that.
    I want to know which is better from OpenGL or Quartz?
    And where I can learn more on that?
    Thanks,
    Ganesh Pisal

    I would recommend against OpenGL for a 2D game. Quartz does a lot of work to avoid updating parts of the screen that haven't changed, something OpenGL doesn't do. The iPhone's implementation of OpenGL has other serious performance issues.

  • Onclick or onsubmit which is better?

    Hello,
    Adding JS validation onclick of a submit button or adding JS
    to form onsubmit, which is better?. What is Adv and Dis?.
    <form name="frm" method="post">
    <input type="Submit" name="Submit" value="Submit"
    onclick="return JSCheck(this.form)">
    </form>
    OR
    <form name="frm" method="post" onsubmit="return
    JSCheck(this.form)">
    <input type="Submit" name="Submit" value="Submit">
    </form>
    Thanks

    In this kind of programming there are no hard and fast rules.
    I don't think there is a significant difference between the two.
    Which one you choose depends on how creatively you put the function
    JSCheck() together.
    However, i prefer the second. I get the feeling the button is
    'overloaded', as it has to respond to two events: submit the form
    and run the script.
    Also, if the Javascript performs form validation, then it
    will only be natural for it to be called by onSubmit. Imagine that
    the result of the form validation,
    return JSCheck(this.form), is a boolean. If it is true, the
    form is submitted; otherwise, not. In these circumstances the code
    onSubmit="true;" will be more natural than the code
    onClick="true;" .

  • Which is better! ClamXav or Macscan.

    Which is the better protection for my mac pro
    CLamXav  or Macscan or is there something out there better!! 
    Thanks

    Mac users often ask whether they should install "anti-virus" software. The answer usually given on ASC is "no." The answer is right, but it may give the wrong impression that there is no threat from what are loosely called "viruses." There  is a threat, and you need to educate yourself about it.
    1. This is a comment on what you should—and should not—do to protect yourself from malicious software ("malware") that circulates on the Internet and gets onto a computer as an unintended consequence of the user's actions. It does not apply to software, such as keystroke loggers, that may be installed deliberately by an intruder who has hands-on access to the computer, or who has been able to log in to it remotely. That threat is in a different category, and there's no easy way to defend against it.
    The comment is long because the issue is complex. The key points are in sections 5, 6, and 10.
    OS X now implements three layers of built-in protection specifically against malware, not counting runtime protections such as execute disable, sandboxing, system library randomization, and address space layout randomization that may also guard against other kinds of exploits.
    2. All versions of OS X since 10.6.7 have been able to detect known Mac malware in downloaded files, and to block insecure web plugins. This feature is transparent to the user. Internally Apple calls it "XProtect."
    The malware recognition database used by XProtect is automatically updated; however, you shouldn't rely on it, because the attackers are always at least a day ahead of the defenders.
    The following caveats apply to XProtect:
    ☞ It can be bypassed by some third-party networking software, such as BitTorrent clients and Java applets.
    ☞ It only applies to software downloaded from the network. Software installed from a CD or other media is not checked.
    As new versions of OS X are released, it's not clear whether Apple will indefinitely continue to maintain the XProtect database of older versions such as 10.6. The security of obsolete system versions may eventually be degraded. Security updates to the code of obsolete systems will stop being released at some point, and that may leave them open to other kinds of attack besides malware.
    3. Starting with OS X 10.7.5, there has been a second layer of built-in malware protection, designated "Gatekeeper" by Apple. By default, applications and Installer packages downloaded from the network will only run if they're digitally signed by a developer with a certificate issued by Apple. Software certified in this way hasn't necessarily been tested by Apple, but you can be reasonably sure that it hasn't been modified by anyone other than the developer. His identity is known to Apple, so he could be held legally responsible if he distributed malware. That may not mean much if the developer lives in a country with a weak legal system (see below.)
    Gatekeeper doesn't depend on a database of known malware. It has, however, the same limitations as XProtect, and in addition the following:
    ☞ It can easily be disabled or overridden by the user.
    ☞ A malware attacker could get control of a code-signing certificate under false pretenses, or could simply ignore the consequences of distributing codesigned malware.
    ☞ An App Store developer could find a way to bypass Apple's oversight, or the oversight could fail due to human error.
    Apple has so far failed to revoke the codesigning certificates of some known abusers, thereby diluting the value of Gatekeeper and the Developer ID program. These failures don't involve App Store products, however.
    For the reasons given, App Store products, and—to a lesser extent—other applications recognized by Gatekeeper as signed, are safer than others, but they can't be considered absolutely safe. "Sandboxed" applications may prompt for access to private data, such as your contacts, or for access to the network. Think before granting that access. Sandbox security is based on user input. Never click through any request for authorization without thinking.
    4. Starting with OS X 10.8.3, a third layer of protection has been added: a "Malware Removal Tool" (MRT). MRT runs automatically in the background when you update the OS. It checks for, and removes, malware that may have evaded the other protections via a Java exploit (see below.) MRT also runs when you install or update the Apple-supplied Java runtime (but not the Oracle runtime.) Like XProtect, MRT is effective against known threats, but not against unknown ones. It notifies you if it finds malware, but otherwise there's no user interface to MRT.
    5. The built-in security features of OS X reduce the risk of malware attack, but they are not, and never will be, complete protection. Malware is a problem of human behavior, and a technological fix is not going to solve it. Trusting software to protect you will only make you more vulnerable.
    The best defense is always going to be your own intelligence. With the possible exception of Java exploits, all known malware circulating on the Internet that affects a fully-updated installation of OS X 10.6 or later takes the form of so-called "Trojan horses," which can only have an effect if the victim is duped into running them. The threat therefore amounts to a battle of wits between you and the scam artists. If you're smarter than they think you are, you'll win. That means, in practice, that you always stay within a safe harbor of computing practices. How do you know when you're leaving the safe harbor? Below are some warning signs of danger.
    Software from an untrustworthy source
    ☞ Software of any kind is distributed via BitTorrent, or Usenet, or on a website that also distributes pirated music or movies.
    ☞ Software with a corporate brand, such as Adobe Flash Player, doesn't come directly from the developer’s website. Do not trust an alert from any website to update Flash, or your browser, or any other software.
    ☞ Rogue websites such as Softonic and CNET Download distribute free applications that have been packaged in a superfluous "installer."
    ☞ The software is advertised by means of spam or intrusive web ads. Any ad, on any site, that includes a direct link to a download should be ignored.
    Software that is plainly illegal or does something illegal
    ☞ High-priced commercial software such as Photoshop is "cracked" or "free."
    ☞ An application helps you to infringe copyright, for instance by circumventing the copy protection on commercial software, or saving streamed media for reuse without permission.
    Conditional or unsolicited offers from strangers
    ☞ A telephone caller or a web page tells you that you have a “virus” and offers to help you remove it. (Some reputable websites did legitimately warn visitors who were infected with the "DNSChanger" malware. That exception to this rule no longer applies.)
    ☞ A web site offers free content such as video or music, but to use it you must install a “codec,” “plug-in,” "player," "downloader," "extractor," or “certificate” that comes from that same site, or an unknown one.
    ☞ You win a prize in a contest you never entered.
    ☞ Someone on a message board such as this one is eager to help you, but only if you download an application of his choosing.
    ☞ A "FREE WI-FI !!!" network advertises itself in a public place such as an airport, but is not provided by the management.
    ☞ Anything online that you would expect to pay for is "free."
    Unexpected events
    ☞ A file is downloaded automatically when you visit a web page, with no other action on your part. Delete any such file without opening it.
    ☞ You open what you think is a document and get an alert that it's "an application downloaded from the Internet." Click Cancel and delete the file. Even if you don't get the alert, you should still delete any file that isn't what you expected it to be.
    ☞ An application does something you don't expect, such as asking for permission to access your contacts, your location, or the Internet for no obvious reason.
    ☞ Software is attached to email that you didn't request, even if it comes (or seems to come) from someone you trust.
    I don't say that leaving the safe harbor just once will necessarily result in disaster, but making a habit of it will weaken your defenses against malware attack. Any of the above scenarios should, at the very least, make you uncomfortable.
    6. Java on the Web (not to be confused with JavaScript, to which it's not related, despite the similarity of the names) is a weak point in the security of any system. Java is, among other things, a platform for running complex applications in a web page, on the client. That was always a bad idea, and Java's developers have proven themselves incapable of implementing it without also creating a portal for malware to enter. Past Java exploits are the closest thing there has ever been to a Windows-style virus affecting OS X. Merely loading a page with malicious Java content could be harmful.
    Fortunately, client-side Java on the Web is obsolete and mostly extinct. Only a few outmoded sites still use it. Try to hasten the process of extinction by avoiding those sites, if you have a choice. Forget about playing games or other non-essential uses of Java.
    Java is not included in OS X 10.7 and later. Discrete Java installers are distributed by Apple and by Oracle (the developer of Java.) Don't use either one unless you need it. Most people don't. If Java is installed, disable it—not JavaScript—in your browsers.
    Regardless of version, experience has shown that Java on the Web can't be trusted. If you must use a Java applet for a task on a specific site, enable Java only for that site in Safari. Never enable Java for a public website that carries third-party advertising. Use it only on well-known, login-protected, secure websites without ads. In Safari 6 or later, you'll see a lock icon in the address bar with the abbreviation "https" when visiting a secure site.
    Stay within the safe harbor, and you’ll be as safe from malware as you can practically be. The rest of this comment concerns what you should not do to protect yourself.
    7. Never install any commercial "anti-virus" (AV) or "Internet security" products for the Mac, as they are all worse than useless. If you need to be able to detect Windows malware in your files, use one of the free security apps in the Mac App Store—nothing else.
    Why shouldn't you use commercial AV products?
    ☞ To recognize malware, the software depends on a database of known threats, which is always at least a day out of date. This technique is a proven failure, as a major AV software vendor has admitted. Most attacks are "zero-day"—that is, previously unknown. Recognition-based AV does not defend against such attacks, and the enterprise IT industry is coming to the realization that traditional AV software is worthless.
    ☞ Its design is predicated on the nonexistent threat that malware may be injected at any time, anywhere in the file system. Malware is downloaded from the network; it doesn't materialize from nowhere. In order to meet that nonexistent threat, commercial AV software modifies or duplicates low-level functions of the operating system, which is a waste of resources and a common cause of instability, bugs, and poor performance.
    ☞ By modifying the operating system, the software may also create weaknesses that could be exploited by malware attackers.
    ☞ Most importantly, a false sense of security is dangerous.
    8. An AV product from the App Store, such as "ClamXav," has the same drawback as the commercial suites of being always out of date, but it does not inject low-level code into the operating system. That doesn't mean it's entirely harmless. It may report email messages that have "phishing" links in the body, or Windows malware in attachments, as infected files, and offer to delete or move them. Doing so will corrupt the Mail database. The messages should be deleted from within the Mail application.
    An AV app is not needed, and cannot be relied upon, for protection against OS X malware. It's useful, if at all, only for detecting Windows malware, and even for that use it's not really effective, because new Windows malware is emerging much faster than OS X malware.
    Windows malware can't harm you directly (unless, of course, you use Windows.) Just don't pass it on to anyone else. A malicious attachment in email is usually easy to recognize by the name alone. An actual example:
    London Terror Moovie.avi [124 spaces] Checked By Norton Antivirus.exe
    You don't need software to tell you that's a Windows trojan. Software may be able to tell you which trojan it is, but who cares? In practice, there's no reason to use recognition software unless an organizational policy requires it. Windows malware is so widespread that you should assume it's in every email attachment until proven otherwise. Nevertheless, ClamXav or a similar product from the App Store may serve a purpose if it satisfies an ill-informed network administrator who says you must run some kind of AV application. It's free and it won't handicap the system.
    The ClamXav developer won't try to "upsell" you to a paid version of the product. Other developers may do that. Don't be upsold. For one thing, you should not pay to protect Windows users from the consequences of their choice of computing platform. For another, a paid upgrade from a free app will probably have all the disadvantages mentioned in section 7.
    9. It seems to be a common belief that the built-in Application Firewall acts as a barrier to infection, or prevents malware from functioning. It does neither. It blocks inbound connections to certain network services you're running, such as file sharing. It's disabled by default and you should leave it that way if you're behind a router on a private home or office network. Activate it only when you're on an untrusted network, for instance a public Wi-Fi hotspot, where you don't want to provide services. Disable any services you don't use in the Sharing preference pane. All are disabled by default.
    10. As a Mac user, you don't have to live in fear that your computer may be infected every time you install software, read email, or visit a web page. But neither can you assume that you will always be safe from exploitation, no matter what you do. Navigating the Internet is like walking the streets of a big city. It's as safe or as dangerous as you choose to make it. The greatest harm done by security software is precisely its selling point: it makes people feel safe. They may then feel safe enough to take risks from which the software doesn't protect them. Nothing can lessen the need for safe computing practices.

Maybe you are looking for