Private vs. protected, naming conventions etc.

I've been grappling with a couple of frustrations with Forte, and I'm
interested in feedback from others on this list regarding approaches
they may have adopted to address these.
One is that in the Forte workshops there is no way to view only the
public methods and attributes of a class (we're still using V2 here; I'm
assuming that V3 has not changed this). While referring to appropriate
technical documentation for a class is obviously important, I still find
myself opening up classes in the workshops to inspect the methods and
attributes available. (What I really want to see is an integrated class
browser. I sure hope Forte is working on something like this, or will
open up their development environment to support third-party extensions.
But that's an aside.)
A convention I just recently adopted in my work is to name private
methods and attributes with a beginning underscore ("_"). That way the
private elements are sorted to the top of the list and can be easily
differentiated from public elements. I'm curious, though, whether others
have adopted similar or different approaches.
I've also felt a bit frustrated over the lack of support for protected
attributes/methods for TOOL classes. This strikes me as a rather
bothersome shortcoming. The only approach I can think of is to make such
elements public, but adopt the same or similar naming conventions as a
strong hint to developers to avoid using these in clients of these
classes. Again, I'd be very interested in hearing how others have dealt
with this issue.
Thanks.
Michael Brennan
Programmer/Analyst
Amgen Inc.

I sent this once before, but the list seemed to be having trouble late last
week. If you get two copies of it... my apologies.
OK, I couldn't resist joining the fray...
At 10:56 AM 11/6/97 -0800, Michael Brennan wrote:
>
A convention I just recently adopted in my work is to name private
methods and attributes with a beginning underscore ("_"). That way the
private elements are sorted to the top of the list and can be easily
differentiated from public elements. I'm curious, though, whether others
have adopted similar or different approaches.You might even designate a single character before the underscore to denote
that, just in case some environment (CORBA) doesn't like the "_". You could
make it something like "Q" or "Z" or something that wouldn't normally be
used alone at the start of a name.
>
I've also felt a bit frustrated over the lack of support for protected
attributes/methods for TOOL classes. This strikes me as a rather
bothersome shortcoming. The only approach I can think of is to make such
elements public, but adopt the same or similar naming conventions as a
strong hint to developers to avoid using these in clients of these
classes. I share your desire for protected methods, but I have to disagree about
protected attributes. Philosophically speaking, protected and public
attributes are EVIL!! (I say "philosophically speaking" because, in the
Forte environment, there are some valid reasons for using them based upon
the visibility constraints of the language. In other languages, C++ and
Java, for example, it's not even philosophically speaking - they're just
evil!!)
One of the principal reasons for adopting the object paradigm is to
tightly control the impact of change - to provide good boundaries of
encapsulation that change does not ripple beyond. If you think about it,
one of the measures of the success of a superclass is the number of
subclasses that it has (especially for a good dabstract interface). This
says you have very nicely captured the semantics of the application domain
in the interface of the superclass. So, let's imagine a superclass with
protected attributes that are used by each of its 100 subclasses (probably
more than you would have, but I'm illustrating my point - incidentally, I'm
not talking about a hierarchy 100 deep; I'm talking about 100 subclasses
that are all direct decendants of the superclass). Now you go and change
one of the attributes. You must go look at all 100 subclasses to determine
the impact of change. This is exactly the kind of thing the object paradigm
was designed to eliminate.
Protected methods, on the other hand, would be nice.
And At 12:06 PM 11/6/97 -0800, Mark S. Potts wrote:
>
Forte inherits in a strange way when attributes are private. A
superclass attribute that is made private is not accessible from any of
its subclasses - this means that many of what you would consider private
attributes in fact have to be public. Well, the definition of private means "not visible outside of the class
where it is defined". I find it useful to think of the level of visibility
the same as secrets. There are things that are not really secrets at all -
it's ok if anyone knows them ("My name is Stephen"). These are public.
Then, there are things that it's ok if my family knows, but I don't want
the world to know - familial secrets, if you will ("I belch at the dinner
table when I'm at home"). These are visible to descendant classes and we
call them protected. Finally, there are things we don't want anyone else
to know, no matter who they are ("I poisoned my mother-in-law"). These are
private. We don't want anyone outside of ourselves to know these things.
These are the classic definitions of public, protected and private (perhaps
classic only because C++ defined them that way and everyone else just
copied what it meant).
Private attributes are not meant to be inherited by their subclasses.
That's why they're private. And, yes, I would argue that that is completely
correct. What you want, if you want them to be visible to subclasses, is
"protected". Now, Forte doesn't support protected, but that's a different
arguement - perhaps even an enhancement request.
We also should not confuse what we need to do in a language/environment
with what good OO principles are. For example, good OO design principles
state that you do not have public or protected attributes. Period! You
access them via accessors and mutators defined on the appropriate class.
Now, in some environments, this will not give you the performance you need,
so you open things up a bit. But, you shouldn't convince yourself that
doing this is the ideal design, just that it was necessary for performance.
The real problem here is that the performance of accessor and mutator
functions is not fast enough. That's why we open it up. Not because it is
good design. The proper way to fix the problem is to make accessors and
mutators fast enough so that they can be used (C++, for example, does this
with "inline" - not that C++ is my favorite language, it's not. But they
have fixed this one area nicely.)
Some would argue that this is correct and that inheritance does break thepure rules
of encapsulation I don't think inheritance, properly handled (and Forte does properly
handle it) breaks any rules of encapsulation. I would argure that the way
they treat private attributes is quite correct.
- but these people dont build applications!Hmmm... let's see... started building OO applications in 1985 (and building
them ever since) in complex application domains like CAD/CAM/CAE, Air
Traffic Control, Graphics/Imaging, Telecommunications, e-commerce,
entertainment,... ...wrote (and teach) the Forte OO Analysis and Design
course.
I guess you're right. I don't build applications. I build robust,
maintainable, extendable applications. ( ;-) ...nudge, nudge!)
Stephen

Similar Messages

  • How to create new check for SELECT* , Naming conventions etc..

    Hi all,
       I would like have a solution for the below checks are possible or not in ABAP - CODE INSPECTOR. If possible can you please give me the solution..
    a). Performance checks i.e, SELECT* , LOOP without field strings, FOR ALL ENTRIES IN SELECT STATEMENT.
    b). Custom naming conventions.
    c). to check if further modularization can be done in the program,
    d). also the coding standards.
    PLEASE help me , i am struck with it for long time in getting the solution...

    > a). Performance checks i.e, SELECT* , LOOP without field strings, FOR ALL ENTRIES IN SELECT STATEMENT.
    > b). Custom naming conventions.
    > c). to check if further modularization can be done in the program,
    > d). also the coding standards.
    the code inspector allows the creation of new checks, you should consult the documentation how to do it.
    The main problem of the code inspector are hits, which are actually no problem. And I think this is a problem with your checks:
    + SELECT*  this is no performance problem, only in cases when the table is really wide then a field list makes sense, i.e your check
       will find a lot of false hits
    + LOOP without field strings  ... you mean fs =field symbols, same as with SELECT *
    + FOR ALL ENTRIES IN SELECT STATEMENT   ???? FOR ALL ENTRIES is fine
    + Custom naming conventions  ... hmmm be more precise, I think it can be hard
    + to check if further modularization can be done in the program,
        before you want to program can you please explain how you check manually .... I would be interested
    +  also the coding standards.   .... what is that?

  • Project standards, naming conventions, colouring etc.

    Hello everyone
    I'm just starting using Logic, and after reading several posts on the benefits of good organisation (i.e. naming tracks, etc.) I'd like to know if there are any standard ways of naming tracks, projects and a colouring system that may have just developed in 'the industry'. I know many people will have their own way but often people tend to adopt what they've seen others do and this can become a kind of unofficial standard.
    Since I'm starting from scratch, I want to adopt a standard way of:
    Naming projects
    Naming the Tracks
    Colouring the tracks / mixer channels
    (any other things to standardize?)
    I'd rather start doing things in a way that would make it easier when sharing projects than just forge ahead my own way and end up looking back wishing I'd done it differently.
    Hope this makes some sense?
    Thanks.

    Andy Scott3 wrote:
    Maybe someone could help me out here.
    In L7 I was able to open a page where I could name tracks before recording them but now in 9 I still haven't found out how to do this so land up with numbered tracks which I then rename in the bin.
    As for track, channel, mixer naming...what a nightmare! I often land up having to rename almost everything twice per session and even then the mixer often displays something else! I'm almost at the point of having to just ignore names and go by region names and track numbers instead.
    Create the amount of audio tracks you want and double click on their title (i.e. Audio 1, Audio 2 etc) on the arrangement layout or their title on the mixer layout and rename the track/s to what you want before you record.
    If you forget to do this prior to recording and you name the tracks later, you can easily rename all the regions at once by selecting region > track names to regions
    I would recommend setting up a template file with all your common recording tracks named so that you don't have to do this each time you start a project.

  • Naming Convention document for MDM

    Hi,
    I am looking for naming convention document for MDM . If anyone have then please do share with me .
    Thanks,
    Rohit
    [email protected]

    Rohit,
    if you are speaking about programming, the naming convention depends from the language that you are using, e.g. for Java:
    http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html
    for abap:
    http://help.sap.com/saphelp_nw04/helpdata/en/92/c2b084bc1d11d2958700a0c94260a5/content.htm
    for rdbms:
    http://www.ss64.com/orasyntax/naming.html
    etc. etc.
    Regards,
    Vito

  • Enterprise Object (EO) Naming Conventions for Controls

    Post Author: rnagahori
    CA Forum: Nsite
    When naming controls you should follow standard naming conventions. Good names
    describe the control, such as prodName, effectiveDate, and dateRequired. Avoid
    special characters like "-" ," /", "<" , or ">" when naming your controls.

    Post Author: rnagahori
    CA Forum: Nsite
    Additional notes ... Avoid using the following list of Reserved Variable Names:Application Builder uses several reserved variable names. Please do not use
    these as the names of controls, or as variables within Action Builder
    routines.
    Reserved Names
    sum
    min
    max
    avg
    abstract
    boolean
    break
    byte
    case
    catch
    char
    class
    const
    continue
    default
    do
    double
    else
    extends
    false
    final
    finally
    float
    for
    function
    goto
    if
    implements
    import
    in
    instanceof
    int
    interface
    long
    native
    new
    null
    package
    private
    protected
    public
    return
    short
    static
    super
    switch
    synchronized
    this
    throw
    throws
    transient
    true
    try
    var
    void
    validate
    while
    with
    _allowSubmitOnError
    _fields
    _form
    _locked
    _name
    _queue.errorFields
    _queue.errors
    _queue.validation
    _parent
    _pointers
    _showAlerts
    _skipValidation
    _status
    obj
    addEvent
    addField
    addMethod
    addValidator
    changedFields
    checkForErrors
    disabled
    dump
    forceValidation
    hasChanged
    getFields
    optional
    onSubmit
    onValidate
    removeField
    required
    reset
    setFields
    submit
    submitCheck
    description

  • Image naming convention

    Hi,
    I want to know the naming conventions used for image files in iPhone and iPad.
    I've seen it's like
    name~iphone.png
    name@2x~iphone.png
    name~ipad.png
    name@2x~ipad.png
    What about iPhone 5? How are we going to name images created for iPhone 5.
    I have seen some thing like this [email protected] What is this 568h is?
    And also if I have images for landscape and portrait mode separately how can I reflect it in the file name? Is there any convention for that?
    I'm using story boards to create my UI. If I have these images in the project, does it automatically load the correct image to load depending on these names or do we have to write code to load image correctly for retina version and normal version and correct iphone version etc..
    Thanks

    568h i believe is because the images is 568 points in (h)eight
    if it was non-retina that would be 568pixels.
    at the moment iphone doesnt support landscape launch images. For the iPad, however, you use:
    Default-Portrait.png                      768 x 1004
    Default-Landscape.png              1024 x 748 pixels
    [email protected]             536 x 2008 pixels
    [email protected]       2048 x 1496 pixels
    When you drag images with these names in to your project xcode automatically assigns them as the launch images.  You can double check by viewing the summary tab for your project target.
    Click the top most folder in the left hand pane.  then in the right hand click the name of your app under "target", then click the summary tab.  You can also drag and drop files into these "buckets" if they are name incorectly.

  • Storage Location Naming Convention without WM!

    Dear all
    We are facing serious problem in our Storage Location for Raw Material.
    We have 4 types of Raw Material Seating (S), Panel (P), Metal (M), Wood (W). And they are all stored under Storage Location: RWSL.
    Requirement:
    Although we have visual guideline as to which industrial rack will store the type of Material, it is insufficient. We need a more refined storage location down to which BIN of the rack we will put the Raw Material.
    Due to limited time and resource, we cannot have WM implemented right now. Thus, we have come out with 2 alternative to overcome this problem:
    Alternative 01:
    We will use the Fixed Bin field in Storage Data 02 by putting the Bin number assigned to each Rack.
    E.g. For Seating material code:SEAT01, we will maintain the Fixed Bin as R12A01/A02, it means this Seating material SEAT01 will be stored at Rack 12, fixed bin A01 or A02.
    Question to Alternative 01: Will it cause problem in GR, GR, Transfer Posting and Stock Count?
    Alternative 02:
    Instead of going into details to put Fixed Bin field in Storage Data 2, we will abandan the existing Storage Location RMSL by introducing new format for Storage Location
    Here is the example of Alternative 02:
    For raw materials, we will use 4 digits location numbers, consistent with other Storage locations, the 4 digits storage location will start with u201CR _ _ _u201D to represent each location
    And,
    R _ _ _ is:
    R = Raw materials
    2nd digit = Division (S= Seating, P =Panel, W=Wood, M=Metal and W=Wood)
    3rd digit = Rack Number (A, B, C, Du2026 and etc.)
    4th digit = Rack Zone - each rack will broken down into zone, each rack can possibility have 2 to 3 zone. 1 Zone can be 1 colume of the Rack
    An example of a possible location and its meaning will be
    RSA1 = Raw materials warehouse, Seating division, Rack A, Zone 1
    RPB3 = Raw materials warehouse, Panel Division, Rack B, Zone 3
    The challenge of this is that instead of having 1 Raw Material Storage Location like RMSL, we will have a lot more storage locations each for division of Raw material due to the Rack Number we have as well as the Rack Zone.
    Question to Alternative 02:
    If we use this alternative, will it impact our future implementation of WM? From design wise, is it feasible?
    Please advise what is the best approach and the feasible design on it.
    Many thanks in advance.
    Edited by: Daimos on May 13, 2009 10:15 AM

    Hi, here is the Pro and Co of both approaches:
    Method 01: Use existing SLOC and add the Storage Bin info
    e.g. SLOC: STM1
             Storage Bin: RSC3, where RS = Rack Seating, C3 = column 3
    Pro 01:
    It will cause less effort as we only need to use LSMW for material master to add in the Storage Bin data for all material of SCM.
    Pro 02:
    I have tested out that in TCode MIGO, apart from SLOC, the pertaining Storage Bin data also appear.  Based on my discuss with Xian Chen, sometimes they use MB1C(GR), MB1A(GI) rather than MIGO due to speed issue, I will need to check the field status if can have Storage Bin field APPEAR, if can, it will solve the problem
    Con 01:
    The Storage Bin information will only appear in MMBE (Stock Overview) but will not appear in the standard SAP Inventory Report (e.g. MB52 Warehouse Stock). To view it from SAP Inventory Report, we may need to customize the standard report to show the new field Storage Bin. It needs Abap effort.
    Con 02:
    We must have a very good naming convention for Storage Bin. And again, in the above example, if a material is put in SLOC STM1 at Storage Bin RA A1 or C4, it will set a very rigid rule in the future if we need to change it, as I fear that one the Storage Bin has been used up. It will not allow us to change (need to do testing to find out)
    Con 03:
    Do we have the time to define all the Storage Bin for each SLOC? Operation wise, the store personnel needs to design it
    Method 02: Use the new SLOC
    Pro 01:
    RSA1 = Raw materials warehouse, Seating division, Rack A, Zone 1. More organized. Easy to tell the material is at which  Rack and which Zone of the Rack.
    Assumption:
    01. we must not have too many rack for one Seating division and also not too many Zone for each
          Division, else it will cause confusion
    02. 1 material should stick to 1 Rack 1 zone as much as possible, else later the PP consultant will 
         have hard to to perform GI due to too many SLOC assigned to a material.
    Pro 02:
    In report wise, we are able to show the SLOC in inventory report. No need to enhance the existing inventory report as we do not use Storage Bin.
    Con 01:
    If there are too many SLOC creation due to it. It may cause problem for PP perform GI as too many selection available for a material. This can be avoided if stick to the General Rule that one material is tied with one SLOC.
    Edited by: Daimos on May 16, 2009 5:07 AM

  • AppleScript To Save Messages As PDFs With Specific Naming Convention

    I am looking for an Applescript that:
    1: Prompts and allows the user to select one or more Apple Mail email messages from within Mail (10.4, 10.5, 10.6).
    2: Prompts and allows the user to select a save-to folder.
    3: For each message, saves it as a PDF file in the save-to folder, using the following naming convention for the PDF file:
    "YYYY-MM-DD HH.MM.SS Email From FIRSTNAME LASTNAME - SUBJECT",
    "YYYY-MM-DD HH.MM.SS Email To FIRSTNAME LASTNAME - SUBJECT",
    where in the email date-sent stamp (if I am the sender) or date-received stamp (if I am the recipient):
    YYYY = the year
    MM = the two-digit month
    DD = the two-digit day
    HH = the two-digit hour (in 24-hour time)
    MM = the two-digit minute
    SS = the two-digit second
    FIRSTNAME is the email sender's first name for email that I receive (or is the email recipient's first name for email that I send)
    LASTNAME is the email sender's last name for email that I receive (or is the email recipient's first name for email that I send)
    SUBJECT = the email's subject line
    For example: 2010-04-10 16.32.48 Email From Kris Ryan - Status Of Payroll Updates.pdf
    For example: 2010-04-10 16.33.55 Email To Sue Anderson - RE Status Of Payroll Updates.pdf (Colon omitted after "RE".)
    4: For each attachment to the message, saves it as a PDF file in the same directory using the naming convention:
    "YYYY-MM-DD HH.MM.SS Email From FIRSTNAME LASTNAME Z Attachment - NUMBER - FILENAME",
    where:
    YYYY-MM-DD HH.MM.SS Email From FIRSTNAME LASTNAME = as above
    NUMBER = an integer representing the attachment number (1, 2, ...) sorted according to filename alphabetical order
    FILENAME = the name of the file attached to the email, including its extension (.docx, .xlsx, etc.)
    The letter "Z" sorts the attachment PDFs after its respective parent email in the directory.
    For example: 2010-04-10 16.32.48 Email From Kris Ryan Z Attachment - 1 - List Of Suggestions To Moore.doc.pdf
    For example: 2010-04-10 16.32.48 Email From Kris Ryan Z Attachment - 2 - Proposed Salary Adjustments.xls.pdf
    For example: 2010-04-10 16.32.48 Email From Kris Ryan Z Attachment - 3 - Salary History.pps.pdf
    Note: The email attachment may consist of a PDF or MS Office file (Word, Excel, Power Point); however, a smart implementation will be able to handle any attachment kind. If the attachment is a PDF file, then save it "as is" using the stipulated naming convention, without passing it through Distiller.
    Thank you.
    Kurt Todoroff

    Well, that's quite a spec sheet.
    Here's a start, you can easily edit the script to get what you need:
    <pre style="
    font-family: Monaco, 'Courier New', Courier, monospace;
    font-size: 10px;
    font-weight: normal;
    margin: 0px;
    padding: 5px;
    border: 1px solid #000000;
    width: 720px; height: 340px;
    color: #000000;
    background-color: #E6E6EE;
    overflow: auto;"
    title="this text can be pasted into the AppleScript Editor">
    Set a Mail Rule to Save Message and Attachment to Desktop.
    To save attachments to another another folder on the desktop (i.e. Attachments) create the folder and then
    change tell application "Finder" to set pathToAttachments to (path to desktop folder as string) & "Attachments:"
    using terms from application "Mail"
    on perform mail action with messages theMessages
    tell application "Finder" to set ptd to (path to desktop folder) as string
    tell application "Finder" to set pathToAttachments to (path to desktop folder) as string
    tell application "Mail"
    repeat with theMessage in theMessages
    set d_recd to date received of theMessage as string
    set d_recd to ReplaceText(d_recd, ":", " ") of me
    set d_recd to ReplaceText(d_recd, ",", " ") of me
    set theText to content of theMessage
    if theMessage's mail attachments is not {} then
    repeat with theAttachment in theMessage's mail attachments
    set theFileName to pathToAttachments & (theMessage's subject) & " (Attachment From " & (theMessage's sender) & " Sent " & d_recd & ")" & space & theAttachment's name
    try
    save theAttachment in theFileName
    on error errnum
    end try
    end repeat
    end if
    set theFile to ptd & (theMessage's subject) & " (From " & (theMessage's sender) & " Sent " & d_recd & ")" & ".txt"
    set theFileID to open for access file theFile with write permission
    write theText to theFileID
    close access theFileID
    end repeat
    end tell
    end perform mail action with messages
    end using terms from
    on ReplaceText(theString, fString, rString)
    set current_Delimiters to text item delimiters of AppleScript
    set AppleScript's text item delimiters to fString
    set sList to every text item of theString
    set AppleScript's text item delimiters to rString
    set newString to sList as string
    set AppleScript's text item delimiters to current_Delimiters
    return newString
    end ReplaceText</pre>

  • Class naming convention

    many a times i face difficulty with the Action/Class naming convention.
    Say, today ..i wrote a class.....tomorrow i have to rename the name of the class so that it becomes a more meaningful name and becomes unique and understandable with the newcomer classes.
    ...just to do this, i had to change the name of the class very frequently.
    Though i follow few conventions like :
    1) First letter of the class is Captial letter.
    2) use names which is relevant with the classs's functionality.
    but still i fall in problem....
    say, i want to populate a DataBase with my class.....whats the name i should keep ? tommorrow i am going to write another class which also populate the database . what do i do ?
    i first rename the old class with some meaningful name and then i write the new class with some other meaningful name.....but this kills time.....demands lots of changes....and so on...
    you know, i get trouble when my number of classes increases.
    do u feel the same ?
    what are the rules (NOT JAVA RULES but meaningful rules) i should remember to keep a class name ?

    You can name a class based on what it supposed to
    do...
    while naming it follow conventions like the ones
    which are mentioned in the code
    conventions/guidelines of your project.
    You will not be writing the same functionality in two
    different classes... would you??
    In case you may need to refractor(rename the class
    name) you may use java editor with refractoring
    capability to do it..
    With most of the java editors, you get this
    functionality.. e.g. doing a Alt+Shift+R would
    refractor your selected method, class, field etc...
    This applies to Eclipse
    >
    Hope that helps..
    Vaibhav

  • Export-Import and Naming convention question

    All,
    Newbie here. Have a question related to the naming convention for SAP R/3 system and XI manual export/import process. We are currently in the development environment where our R/3 systems are named as D55CLNT400, D56CLNT300 etc (first 3 characters are the system id, and last 3 are the client number.) This is per the XI best practices convention.
    The question i have is - if we name the technical system as above - and export the configuration objects from the Dev to Test environment - where the R/3 systems are named as T55CLNT400, T56CLNT300 (similar naming structure). Does it mean that we need to manually change almost all of the items in the Test environment on the configuration side (like business sytem name, interface determination, receiver determination etc)
    Is this the correct way or are we missing something??? I would have preferred a way - where we needed to only update the communication channel parameters.
    Thanks.
    Message was edited by:
            thezone

    In the SLD, create three Business System Groups: DEV, QAS and PRD.
    In each of these groups, you must have the relevant application servers (in your case, R/3s) and one integration server (XI).
    Then, for each Business System in Group DEV, define a transport target in QAS group.
    In your case, the transport landscape should be like this:
    D55CLNT400 -> T55CLNT400
    D56CLNT300 -> T56CLNT300
    XI_DEV -> XI_QAS
    Do the same for the QAS group (defining transport targets in PRD group). Observe that you need to have the same number of Business Systems in each group for this to work properly.
    Now, when you transport your configuration objects from XI_DEV to XI_QAS, all the Business Systems in DEV landscape will be replaced for the equivalent ones in QAS landscape.
    More info: http://help.sap.com/saphelp_nw2004s/helpdata/en/ef/a21e3e0987760be10000000a114084/frameset.htm
    Regards,
    Henrique.

  • Does an mac air need any internet/security protection from viruses etc. ?

    I was wondering does the mac need any interent security such as kaspersky or norton installed for protection? or is there already protection from viruses etc on the software installed? Thanks

    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.
    If you find this comment too long or too technical, read only 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.
    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, your browser, or anything else.
    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
    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.
    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 institutional 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.

  • ADF BC naming convention suggestions

    Ok, I havent found too many topics on this matter, but here is a list of naming conventions our team is debating over. I would also like to hear the rest of the community's thoughts.
    Entity: Use underlying table's name and postfix with Eo. If the table is a W view, it should prefix with W.
    eg. EmployeeEo, WEmployeeEo
    View Object (Single entity based): Use the Entity's name postfix with Vo.
    eg. EmployeeVo, WEmployeeVo
    View Object (Multiple entity based): Use the primary entity's name followed by a "busniess task" name.
    eg. DepartmentEmployeeSearchVo (employee search being the task).
    View Object (Non-entity based): Use the primary query table name followed by a "busniess task" name.
    eg.EmployeeCountVo
    View Link & Association: Combine the master entity name and child entity name postfix with Vl/Ao.
    eg. DepartmentEmployeeVl, DepartmentEmployeeAo
    (The issue with this is our legacy tables are not that intuitivly named, so its hard to distinguish the master/child tables. I was thinking of splitting it with lets say 2, like Department2EmployeeVl)
    Application Module: Apply a "busniess process" name and suffix with AppModule.
    eg. AcmeAccountingAppModule.
    If anyone has any suggestions or see any conventions left out please post them.
    Thanks,
    Z

    Without discounting your object name conventions, don't forget the Java package they are placed in helps gives context for the object. This is what I tend to do:
    com.acme.appmodules
    com.acme.entities (all entities)
    com.acme.entities.associations
    com.acme.views (common VOs)
    com.acme.views.links (common VO links)
    com.acme.views.reference (common read only VO lookups)
    com.acme.views.<business task> (to group logical business VOs together)
    com.acme.views.<business task>.links
    ...the last 2 are repeated for each business task area (eg. HR, accounts, etc)
    My ideas partially based on the SRDemo from the JDev team.
    Hope this helps.
    CM.

  • Question about Best Practices - Redwood Landscape/Object Naming Conventions

    Having reviewed documentation and posts, I find that there is not that much information available in regards to best practices for the Redwood Scheduler in a SAP environment. We are running the free version.
    1) The job scheduling for SAP reference book (SAP Press) recommends multiple Redwood installations and using export/import to move jobs and other redwood objects from say DEV->QAS->PROD. Presentations from the help.sap.com Web Site show the Redwood Scheduler linked to Solution Manager and handling job submissions for DEV-QAS-PROD. Point and Shoot (just be careful where you aim!) functionality is described as an advantage for the product. There is a SAP note (#895253) on making Redwood highly available. I am open to comments inputs and suggestions on this issue based on SAP client experiences.
    2) Related to 1), I have not seen much documentation on Redwood object naming conventions. I am interested in hearing how SAP clients have dealt with Redwood object naming (i.e. applications, job streams, scripts, events, locks). To date, I have seen in a presentation where customer objects are named starting with Z_. I like to include the object type in the name (e.g. EVT - Event, CHN - Job Chain, SCR - Script, LCK - Lock) keeping in mind the character length limitation of 30 characters. I also have an associated issue with Event naming given that we have 4 environments (DEV, QA, Staging, PROD). Assuming that we are not about to have one installation per environment, then we need to include the environment in the event name. The downside here is that we lose transportability for the job stream. We need to modify the job chain to wait for a different event name when running in a different environment. Comments?

    Hi Paul,
    As suggested in book u2018job scheduling for SAP from SAPu2019 press it is better to have multiple instances of Cronacle version (at least 2 u2013 one for development & quality and other separate one for production. This will have no confusion).
    Regarding transporting / replicating of the object definitions - it is really easy to import and export the objects like Events, Job Chain, Script, Locks etc. Also it is very easy and less time consuming to create a fresh in each system. Only complicated job chains creation can be time consuming.
    In normal cases the testing for background jobs mostly happens only in SAP quality instance and then the final scheduling in production. So it is very much possible to just export the verified script / job chain form Cronacle quality instance and import the same in Cronacle production instance (use of Cronacle shell is really recommended for fast processing)
    Regarding OSS note 895253 u2013 yes it is highly recommended to keep your central repository, processing server and licencing information on highly available clustered environment. This is very much required as Redwood Cronacle acts as central job scheduler in your SAP landscape (with OEM version).
    As you have confirmed, you are using OEM and hence you have only one process server.
    Regarding the conventions for names, it is recommended to create a centrally accessible naming convention document and then follow it. For example in my company we are using the naming convention for the jobs as Z_AAU_MM_ZCHGSTA2_AU01_LSV where A is for APAC region, AU is for Australia (country), MM is for Materials management and then ZCHGSTA2_AU01_LSV is the free text as provided by batch job requester.
    For other Redwood Cronacle specific objects also you can derive naming conventions based on SAP instances like if you want all the related scripts / job chains to be stored in one application, its name can be APPL_<logical name of the instance>.
    So in a nutshell, it is highly recommend
    Also the integration of SAP solution manager with redwood is to receive monitoring and alerting data and to pass the Redwood Cronacle information to SAP SOL MAN to create single point of control. You can find information on the purpose of XAL and XMW interfaces in Cronacle help (F1). 
    Hope this answers your queries. Please write if you need some more information / help in this regard.
    Best regards,
    Vithal

  • Oracle BPEL standard, best practice and naming convention

    Hi, folks,
    Is there any standard or best practice associated with Oracle BPEL, regarding development, performace, what to avoid, etc? And is there any naming convention for the process, variable partner link name, etc? Similar to naming convention in writing Java code?
    Thanks
    John

    Hi,
    Here is the best practice guide:
    http://download.oracle.com/technology/tech/soa/soa_best_practices_1013x_drop3.pdf
    Thanks & Regards,
    Dharmendra
    http://soa-howto.blogspot.com

  • Naming convention for packages and classes

    Hi all,
    Is there any naming conventions for packages and classes which uses a design pattern ?. If yes what are the conventions used for business delegate,session facade, service locator,DAO and any other patterns.
    rgds
    Anto Paul

    Hi,
    that is a good question and one we have considered also. We dont yet cover the naming conventions for classes based on patterns but maybe will in the future. Currently, in the blueprints apps we tend to do some things like naminga class
    -AccountDAO etc for DAOs
    -For servicelocator we have a class called ServiceLocator viewable at https://adventurebuilder.dev.java.net/source/browse/adventurebuilder/ws/components/servicelocator/src/java/com/sun/j2ee/blueprints/servicelocator/web/ServiceLocator.java?rev=1.4&content-type=text/vnd.viewcvs-markup
    -for session facade, its a bit trickier since the name is so long and we cant add "SessionFacade" to the end of each facade class. I think in general we put "Facade" in the name, usually near the end
    -For Business Delegat, again it seems too long to add to each class name. So in the past we have added
    a "BD" to the names of the delegates. Some examples are at http://java.sun.com/blueprints/patterns/BusinessDelegate.html
    -For transfer objects we usually add a TO to the end of the name. Some examples at http://java.sun.com/blueprints/patterns/TransferObject.html
    Seems like something we could get a bit more consistent about.
    hope that helps,
    Sean

Maybe you are looking for

  • Photo will not retain edits

    I using a Photoshop CC on my mac. I scanned some drawings as tiffs and I'm trying to edit them now. Every change I make to them goes away as soon as I hit the ok button. I've tried adjusting the mode and basically everything else I can think of. How

  • Ipod 5 touch black screen no service wont charge doesnt show up on computer when usb is plugged up

    ipod 5 touch. I have a  black screen, no service. will not come on.  Will not charge.  Doesnt show up when connected to computer with usb port.  Any help would be greatly appreciated. Thank you

  • This XML file does not appear to have any style information...

    hello, i am a new oracle spatial developer and also i am new in XML. i want to see the demos in oracle 10g enterprise edition. i imported the necessary dump files and i created the necessary user defined as mvdemo/mvdemo. when i want to see the demos

  • I want to clear my browser search history

    I am an old guy who has a new toy (Ipad 4)  I need to know how to clear my browser search history  whenever i go to google to enter a new search, as soon as I put the first letter in the bar, all that I have searched before pops up.  It is anoying an

  • Nokia n95 wifi connect to the router no getway rep...

    i have nokia n95 i have a wofi router i want to connect my router ti using browsing when i connect the wifi to the router the message " no getway reply" so  i need to full configration so pls help Solved! Go to Solution.