Input reading best practices

I'm curious as to what opinions people might have on this. If I'm writing a program that reads in a file line-by-line and processes each one, I'm used to doing it the old K&R C-style:
reader = new BufferedReader(new FileReader(filename));
String nextLine = null;
while((nextLine = reader.readLine()) != null) {
     // Do something
}Every so often I run my code through tools like PMD and FindBugs to see what advice they might have. And it seems as though they really don't like this construct. So, I'm wondering, is there a best-practice way to do this? Something a bit cleaner that people like to use?

JEisen wrote:
Tolls wrote:
>
I can see that one, though I'd have thought it was a DD (according to their docs)...you're assigning null to nextLine and then reassigning readline() to it. The null's not necessary.You know, that's what I thought, but taking the null out doesn't change the warning. (I now have just 'String nextLine;')Unless you have this code inside another block - maybe a try{} for catching the IOException, in which case you might get the DU (which I don't think is necessarily a problem - doesn't it mean you are keeping things to the smallest scope as possible - generally considered a good thing. Unless I am missing something...)
Like this:
        try
            String nextLine;
            while ((nextLine = reader.readLine()) != null)
                System.out.println(nextLine);
        catch (IOException ioe)
        }>
- Avoid assignments in operandsI tend not to do this because I'm not a fan of the "do as much in one line" school of thought...but I can read it, so I don't complain about it in review meetings if it turns up in someone elses code. Life's too short for that.I managed to clear the warnings with the following code. Somehow, I think this isn't so much better as to avoid the other way, is it?
for(String nextLine = reader.readLine(); nextLine != null; nextLine = reader.readLine()) {
if(nextLine != null) {
     // Do something
I think we are talking opinion here, but I find this for loop construct worse. I would prefer one of these (if not the one being complained about):
        String nextLine = reader.readLine();
        while (nextLine != null)
            System.out.println(nextLine);
            nextLine = reader.readLine();
        do
            nextLine = reader.readLine();
            if (nextLine != null)
                System.out.println(nextLine);
        } while (nextLine != null);The disadvantage each of these options has over the original is that you do the same thing multiple different places (either nextLine = readLine() is repeated, or the null comparison is repeated).

Similar Messages

  • A must read best practices when starting out in Designer

    Hi,
    Here is a link to a blog by Vishal Gupta on best practices when developing XFA Forms.
    http://www.adobe.com/devnet/livecycle/articles/best-practices-xfa-forms.html
    Please go read it now; it is excellent :-)
    Niall

    I followed below two links. I think it should be the same even though the links are 2008 R2 migration steps.
    http://kpytko.pl/active-directory-domain-services/adding-first-windows-server-2008-r2-domain-controller-within-windows-2003-network/
    http://blog.zwiegnet.com/windows-server/migrate-server-2003-to-2008r2-active-directory-and-fsmo-roles/
    Hope this help!

  • BizTalk monitoring best practice(s)

    I am looking for information on best practices to monitor BizTalk environment (ideally using Tivoli monitoring tools).  Specifically I am looking for insight into what should be monitored, how one analyzes performance profile.  Thanks

    While setting up monitoring agents/products for BizTalk server (or for any server/application for this matter), there are two ways to start:
    If available, import/install application specific monitoring packages i.e. Import/install prebuild monitoring rules, alerts and actions specific to the application.
    Or create the rules/alerts and actions from scratch for the application.
    For monitoring products like SCOM, management packs for BizTalk server are available as pre-build, as readymade packages. For a non-Microsoft product like Tivoli check with
    the vendor/ IBM for any such pre-build monitoring packages for BizTalk. If available purchase it and install it in Tivoli. This would be the best option to start, instead of spending time and resource in building the rules, alerts and actions from scratch.
    If pre-build monitoring package is not available, then start by creating rules to monitor any errors or warnings from event logs of the BizTalk and SQL servers. Gradually,
    you can update/add more rules based on your needs.
    And regarding analysing performance profile, most of the monitoring product now-a-days comes with prebuild alerts for monitoring the server performances, CPU utilization
    etc. I’m sure renowned product like Trivoli shall have prebuild alerts for monitoring the server performances. Same can be configured to monitor the BizTalk’s performances. And also monitoring event log entries would also pickup any performance related issues.
    Moreover, Tivoli has got detail user guide document for setting alerts for BizTalk server. Check this
    document here.
    Reading best practices, links provided by MaheshKumar shall help you.
    Key point to remember is no-monitoring product is perfect; you can’t create a fool-proof monitoring alerts and actions on day one. It would get mature over the time in your
    environment.
    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful.

  • Best practice for read-only functionality

    Hi,
    I'm part of the development team of a system with about 100 screens. The customer would like us to add some read-only functionality to the system, so that certain users are able to access the screens but not change any of the data on them. We already have policies in place on the database level that keeps read-only users from saving data, but it's not very user friendly to allow users to change data on a screen, only to tell them that they're not allowed to save those changes once they try to do so. It would clearly be better if all components are rendered as read-only components for read-only users, making them unable to make any data changes in the first place.
    User privileges in the system are controlled by roles defined and set in the system (not ADF roles or Weblogic roles). At any given time and place, it's possible to check whether the current user has a certain role. We already use this in a number of places to make it possible to control which user has access to which screens. In a few places we even control which functionality should be enabled for the current user within a screen, but mostly the access control is currently on the screen level. With read-only users getting access to all screens, it seems we will need lot of extra in-screen access control to keep these users from changing anything.
    But what's the best practice here? One way to go would be to add some logic to every single active component on every single screen, to determine whether it should be rendered as active or disabled/read-only. But that would require a lot of extra coding.
    So my question is: Is there a smarter way to do this? Maybe something done through skinning? Or something else?
    (I'm not sure how relevant this is for this sort of question, but we're currently using JDev 11.1.1.4.0, and expect to upgrade to 11.1.1.6.0 within the next 6 months)
    Best regards,
    Andreas

    Hi Guna, Puthanampatti and Don,
    Thanks a lot for your replies. I'm currently looking into implementing something along the lines of what Guna has suggested:
    Our application consists of a number of individual work spaces that are deployed as adflibs which have all been added to a "master application work space", and the master application is deployed as an .ear file. Most of the individual work spaces are for all the different functional areas of the application, with their own task flows, page fragments etc. The rest are work spaces with common functionality, like datamodel (entity definitions), utility methods, page templates, and framework extensions. In the latter, we have defined custom classes for all the base classes (somewhat similar to what Don describes, I believe).
    In our custom class for ViewRowImpl, I have added an isAttributeUpdateable method, and in our custom class for ApplicationModuleImpl I have added an isReadOnlyUser method. The isAttributeUpdateable method uses the isReadOnlyUser method to determine if the current user is a read-only user or not; if the user is a read-only user the isAttributeUpdateable method will return false, otherwise true. The isReadOnlyUser method in our base class is just a dummy method that always returns true. But in the ApplicationModuleImpl classes of our individual work spaces, i've written an override for isReadOnlyUser, giving the answer that is relevant for the work space in question (for instance, whether or not the current user has the role "User Administrator").
    That pretty much takes care of all input fields in tables and forms, which is a big step in the right direction. This still leaves some work to be done for components that are not directly linked to view object attributes (like buttons), but I guess that can't be helped. Also, there are a few of the work spaces that contain a number of pages that are related to different user privileges (as in: page 1 requires user privilege A, and page 2 requires user privilege B); in these cases I will have to do something different than just writing an override in the "local" ApplicationModuleImpl class.
    @Don: What you describe seems to be pretty close in functionality to what we already have, though your implementation is different from ours. You have used your custom base ApplicationModuleImpl class to keep read-only users from committing changes. We use Virtual Private Database and database policies to the same end: If a user without the required full-access role tries to commit data it will cause a database error, which we then handle in the application (so the user gets a message like "You don't have the required privileges to changes this data", rather than an ORA message). Unfortunately, our customers are not content with this. They want a solution where all input fields and most of the buttons etc. are disabled for read-only users, and that's why I'm looking into the best/smartest way to do this.
    @Puthanampatti: We already use something similar to what you're suggesting. The challenge I'm currently facing is how best to disable/enable components based on the current user's roles, not how to determine and store those roles.
    Best regards,
    Andreas

  • Best practice: read information from server

    Hi All,
    currently I am wondering about the best-practice approach to read/write data from an iPhone app to a webserver.
    What is the easiest way to achieve such a scenario? Is it just to build an easy SQL server online an connect via xcode? Using which frameworks/protocols would be best-practice in xcode? What would be the best setup for communication between an iPhone app and any server-instance in the web?
    My goal is more or less to read data from a server when the application is started and write some data to this server when the user has input some text details.
    Regards,
    Patrick

    Please post your questions in the appropriate forums.
    This forum is for the specific product Virtual Server 2005.
    For Hyper-V related questions, use the Hyper-V forum:
    http://social.technet.microsoft.com/Forums/windowsserver/en-US/home?forum=winserverhyperv
    For server questions please use the server forums:
    http://social.technet.microsoft.com/Forums/windowsserver/en-us/home?category=windowsserver
    Microsoft has a lot of documentation, have you read it yet? Googled?
    Clustering:
    http://social.technet.microsoft.com/Forums/windowsserver/en-US/7173caf4-a5aa-4426-a16b-592a6e6714ec/windows-server-2012-hyperv-cluster-step-by-step?forum=winserverhyperv
    http://www.bing.com/search?q=hyper-v+cluster+2012+r2+step+by+step&src=IE-SearchBox&FORM=IE11SR
    Domain upgrades:
    http://technet.microsoft.com/en-us/library/hh994618.aspx

  • Best Practices for ASAP Inputs - As-Is Business Process Mapping

    I am new to the SAP world and my company is in the early phases of implementation.  I am trying to prepare the "as-is" business process maps for the Project Preparation and Business Blueprint phases and I am looking for some best practices.  I've been told that we don't want them to go too deep but are there best practices and/or examples that give more information on what we should be capturing and the format.
    I have searched the forums, WIKI, ASAP documentation, and other areas but have not found much at this level of detail.  I have reviewed the [SAP BPM Methodology|http://wiki.sdn.sap.com/wiki/display/SAPBPX/BPM+Methodology] but again I am looking for more detail if anyone can direct me to that.
    Thank you in advance for any assistance.
    Kevin

    Hello Kevin,
    You can try to prepare a word document for each of your As-Is processes first before going to As-Is Process Design in a flowchart.
    The word document can have 7 sections -
    The first section can include Name of the Process Owner, Designation, Process Responsibility, User Department(s) involved, Module Name and a Document number for reference.
    The second section can include Process Definition details - Name of the major process, Name of the minor process, Name of the sub process and a Process ID for future reference.
    The third section can be titled as Inputs - this contains details of - Input, Vendor for the input, Type of Input (Data / Activity / Process), Category of Input (Vital / Essential / Desirable) and Mode of Information (Hard / Soft Copy).
    The fourth section can be Process Details. Here you can write the process in detail.
    The fifth section to contain outputs of the process, customer to whom these outputs are sent, type of output (report / approval / plan / request / email / fax), Category of Output (Vital / Essential / Desirable) and Mode of Information (Hard / Soft Copy).
    The sixth section can be Issues / Pain Areas in this process - Issue Description, Remarks, Expectations, Priority (High / Medium / Low)
    The seventh section can be expected reports in future out of this process for internal and external reporting.
    Hope this helps your question.

  • Best Practice - Form input

    I have a master detail where I want to display up to 10 detail records. If I currently have 3 detail records, I want to display the three and have 7 blank lines for additional input on the form. Any suggestions on the best way to handle this. Normal functionality would display the 3 and the user would create a new row on the form as they added each row. Looks like JBO:ROW would allow me to create the rows prior to displaying the form, but I would have to Delete any null rows before I commit the new rows entered. Or maybe use an array populated from the data source. I would also think this would be a common requirement in an application in need of a "Best Practice". Has anyone used a collection for a multivalued column in JDeveloper?
    Thanks Jim

    I haven't come across such a usage thus far in the Java client cases (though web apps do perform such empty row stuff)
    Anyway, here's how you may get this to work. First off all you will need to use JDev 9.0.3.1 (patchset from Oracle Support/Metalink as that has the new method that needs to be used in this solution).
    Create a custom listener for the iterator (that the table is bound to). You may use the JUPanelBinding.addRowSetListener... methods to get RowSetListener events on the desired iterator.
    In the rangeRefreshed event, check the number of rows in the range and if that's less than the number of rows in the table, create and insert new rows in the table and set the new rows into STATUS_INITIALIZED by calling setNewRowState(STATUS_INITIALIZED).
    That'd take care of filling in the white-space (or gray space) in the table with empty rows. Now if the user does not enter any value in these empty rows, the transaction will treat these new rows as 'temporary' and will not attempt to post them. Only when a user enters values into them or makes the rows STATUS_NEW again by some call to setAttribute on the Row, the row will get added to the transaction and posted during commit/post cycle.

  • Is it a best practice to Input Data directly to Parent Currency ?

    Dear Gurus,
    I understand this question is very simple, but I am wondering is it a best practice to Input data directly into <Parent Currency>?
    I am having a scenario where users do translation in Oracle and they wish to see the same number in HFM. As the process that they follow is unique in nature by Entity->Account [OR] for all Entities->Account, creating Override accounts is not helping us and rapidly increasing the Override hierarchy month-on-month.
    Thanks...
    Satya

    By overriding the accounts, I assume you are referring to accounts that are translated historically as opposed to the default translation performed by HFM?
    If so, I have seen two general approaches to achieve this:
         a) Allowing the user to directly override the translation at IsTransCurr (i.e. <parent currency> if parent is in a currency other then entity)
         b) Entering in a special currency rate in a rate account and then adjusting the translate routine to translate your account by that rate.
    I personally, am a bigger fan of the first option.

  • Oracle JDBC (10g) reading clobs -- best practices

    What is the better approach using oracle 10g to save clobs:
    #1) This:
    PreparedStatement pstmt = conn.prepareStatement
    //Create the clob for insert
    Clobs Clobs = new Clobs();
    CLOB TempClob = Clobs.CreateTemporaryCachedCLOB(conn);
    java.io.Writer writer = TempClob.getCharacterOutputStream();
    writer.write(Description);
    writer.flush();
    writer.close();
    #2) Or this:
    OraclePreparedStatement pstmt = (OraclePreparedStatement)conn.prepareStatement
    pstmt.setStringForClob()
    According to my notes, it is #2.
    What is the better approach to read clobs:
    #1) Stream the clob
    //Get character stream to retrieve clob data
    Reader instream = ClobIn.getCharacterStream();
    //Create temporary buffer for read
    char[] buffer = new char[10];
    //Length of characters read
    int length = 0;
    //Fetch data
    while ((length = instream.read(buffer)) != -1){
    for (int i=0; i<length; i++){
    Contents += buffer;
    //Close input stream
    instream.close();
    //Empty LOB
    ClobIn.empty_lob();
    #2) Or this:
    Simply use rs.getString() to get your clob contents. This will return the entire clob and will not truncate.
    Im just confused on the best practices for performance/memory allocation and I keep reading people saying different.
    Reposted in JDBC forum

    Check chapter 16 of "PL/SQL Programming", by Oracle Press, for a starter.
    Then have a look at this link - I found it helpful: http://www.oracle.com/technology/sample_code/tech/java/sqlj_jdbc/files/advanced/LOBSample/LOBSample.java.html

  • Best Practice to Atomic Read and Write a Field In Database

    I am from Java Desktop Application background. May I know what is the best practice in J2EE, to atomic read and write a field in database. Currently, here is what I did
    // In Servlet.
    synchronized(private_static_final_object)
        int counter = read_counter_from_database();
        counter++;
        write_counter_back_to_database(counter);
    }However, I suspect the above method will work all the time.
    As my observation is that, if I have several web request at the same time, I am executing code within single instance of servlet, using different thread. The above method shall work, as different thread web request, are all referring to same "private_static_final_object"
    However, my guess is "single instance of servlet" is not guarantee. As after some time span, the previous instance of servlet may destroy, with another new instance of servlet being created.
    I also came across [http://code.google.com/appengine/docs/java/datastore/transactions.html|http://code.google.com/appengine/docs/java/datastore/transactions.html] in JDO. I am not sure whether they are going to solve the problem.
    // In Servlet.
    Transaction tx = pm.currentTransaction();
    tx.begin();
        int counter = read_counter_from_database();  // Line 1
        counter++;                                                  // Line 2
        write_counter_back_to_database(counter);    // Line 3
    tx.commit();Is the code guarantee only when Thread A finish execute Line 1 till Line 3 atomically, only Thread B can continue to execute Line 1 till Line 3 atomically?
    As I do not wish the following situation happen.
    (1) Thread A read counter from Database as 0
    (2) Thread A increment counter to 1
    (3) Thread B read counter from Database as 0
    (4) Thread A write counter as 1 to database
    (5) Thread B increment counter to 1
    (6) Thread B write counter as 1 to database
    What I wish is
    (1) Thread A read counter from Database as 0
    (2) Thread A increment counter to 1
    (4) Thread A write counter as 1 to database
    (3) Thread B read counter from Database as 1
    (5) Thread B increment counter to 2
    (6) Thread B write counter as 2 to database
    Thanks you.
    Edited by: yccheok on Oct 27, 2009 8:39 PM

    This is my understanding of the issue (you should research it further on you own to get a better understanding):
    I suggest you use local variables (ie, defined within a function), and keep away from static variables. Those local variables are thread safe. If you call functions within functions, its still thread safe. If you read or write to one record in a database using sql, its thread safe (you dont need a transaction). If you read/write to multiple tables and/or records, you probably need a transaction. Servlets are thread safe. You usually dont need the 'synchronized' word anywhere unless you have a function updating/reading a static variable and therefore want to ensure only one user is accessing the static varible at a time. Also do so if you are writing to some resource (such as a file, a variable in applicaton scope, session scope, or resource that everyone uses such as email server). You dont want more than one person at a time to write to it). Note the database is one of of those resources that is handled by transactions rather than the the synchronized keyword (the synchronized keyword is applied to your application only (not other applications that someone is running), whereas the transaction ensures all applications are locked out while you update those records in the database).
    By the way, if you have a static variable, you should have one and only one function (synchronized) that updates it that everyone uses. If you have more than one synchronized function, that updates it, its probably not thread safe.
    An example of a static variable you would use is a Datasource object (to obtain your database connections). You only need one connection pool in your application and you access it via the datasource variable.
    If you're unsure your code is thread safe, you can create two seperate threads that call the same block of functions repeatedly to ensure it works as expected.

  • (Swing) Reading fields from other forms - Best practice

    Hi All,
    I have been learning Java and Swing through NetBeans (quite a cool way to do it). I would like some 'best-practice' advice please. Google and search on this forum are normally my friends, can't find anything relevant for this though. I have created an application that seems to be functional, all my navigation is through tabs.
    To make my app portable I have created a ?Settings? part. To save having another tab, I have basically copied the way NetBeans deals with opening the ?About Box? in its example, and have set-up fields in here. This essentially opens a JDialog with fields through an option in the menu.
    I figure the best way to store the data is in a simple text file, and have the application read the values on start-up? Then when somebody changes the fields and saves it just overwrites the text file with the new values. I am not sure how to best read these in though, I can?t find a way of reading direct from the JDialog (i.e. var.getText()) which makes sense as the JDialog will be closed.
    Will my best practice simply be writing a class which reads the file, then whenever I need a value just calling the class?
    Thanks a lot

    You should not be using preference files unless you really know what you are doing. This is one area of the very few areas of Java programming that can have lasting nasty negative affects on a computer that runs the code if done wrong.
    If you want the user to save preferences it is better to just use xml. The advantage of preference files is they can be used by multiple programs and are permanent even after the program is done running/deleted/writen-over/forgotten. The disadvantages of preference files is they can be used by multiple programs, are permanent even after the program is done running/deleted/writen-over/forgotten, can cause damage to your OS, may be seen as harmfull by add blockers and/or anti-virus software, may lead to conflicts with other software that uses similar naming schemes, and are pretty much unportable.
    You are going to be much better off in the long run learning XML and just saving them there, an added benefit of XML is if you screw something up and it causes your program to no longer run you can easily edit the xml by hand.
    JSG

  • Standards or Best Practices on limits to Adobe LiveCycle forms as data input tools?

    We are trying to determine whether we should be using Adobe LiveCycle forms for our user input pages, or use a web input form (jsf) that is part of the application server. The data captured would then be rendered in multiple output forms. (printing, etc) We've proofed that it can be done, but our experience so far is that to achieve the complex business rules, validations and calculations, there is a lot of javascript code to write. Has there been any industry assessment or best practices on determining when it is best to use a web form vs Adobe Livecycle form for capturing user input? especially when there is a lot of strict validation and business rule, backend data calls, etc?   Our input requirements also differ significantly from our output requirements- where we will definitely be using LiveCycle forms.

    It sounds like you need use the adobe schema in MII so the output of your transaction matches it.
    Regards,
    Jamie

  • How to best format input read from a file to a string

    I am trying to set up a class to convert input read from an xml-file to a java-string, which I can pass on to a web service.
    My attempt is probably not the smartest, but what I did was to set up a for-loop, which iterates through each line in the xml, appending "\n" to the end of each line, before storing them in a variable, which is loaded into an arraylist. When there are no more lines to read in the xml-file, the for-loop should terminate and the contents of the ArrayList should be written to a string, which is then returned.
    Below is my attempt to implement this - thanks in advance!
    import java.io.*;
    import java.util.*;
    public class RequestBuilder {
         private String _filename, output;
         //Constructor method
         RequestBuilder(String filename){
              String line;
              _filename = filename;
              //Sets up a array to store each line of XML read from a file
              ArrayList<String> lineList;
         lineList = new ArrayList<String>();
              try {
                   //Sets up a filereader and a buffer
                   FileReader fr = new FileReader(_filename);
                   BufferedReader br = new BufferedReader(fr);
                   //Iterates through each element of the arraylist until empty
                   for (String o : lineList){
                   //Stores a single linein a variable and appends a line-break
                   line = br.readLine() + "\n";
                   //Addseach line to the arraylist
                   lineList.add(line);
                   //Closes the filereader
                   fr.close();
                   //Writes the arraylist to a string
                   output = lineList.toString();
              } catch (FileNotFoundException e) {
                   e.printStackTrace();
              } catch (IOException e) {
                   e.printStackTrace();
         public String getRequest(){
              return output;
    }

    799992 wrote:
    Well, the reason for doing an ArrayList was that I had to process each line with line breaks and escape characters, but I know realize that I can do the same thing by summing the lines for each iteration directly intro a string like below - it works :-)
    Apparently the filereader takes care of double-quotes as I don't see any difference in the output when I disable the logic I made, which substitutes " with \", can anyone confirm this?
    The code I ended up using:
         //Sets up a filereader and a buffer
                   FileReader fr = new FileReader(_filename);
                   BufferedReader br = new BufferedReader(fr); 
                   //initializes the output variable with the first line from the file
                   output = br.readLine() + "\n";
                   while (br.ready() == true) {
                        //reads each line, saves it in a variable and appends line breaks
                        line = br.readLine() + "\n";
                        //Replaces adds escape character to any double-quotes (apparently not neccessary?)
                        tmpLine = line.replaceAll("\"", "\\\"");
                        line = tmpLine;
                        //sums each line in the current string
                        output = output + line;
    As EJP said you can directly write to the webservice. If you want to check for yourself what the result looks like just read the file without adding anything.
    public String readFile(){
         String xmlString = "";
              try{
                   String line = null;
                   xmlFile = new File(//file);
                   reader = new BufferedReader(new FileReader(xmlFile));
                        while((line = reader.readLine()) != null){
                             xmlString += line;
              catch(FileNotFoundException e){
                        e.printStackTrace();
              catch(IOException e){
                        e.printStackTrace();
         return xmlString.replaceAll("\\s+"," ").trim();//remove spaces
    }

  • IPhone Best Practices - A Work In Progress

    Hello all. I've been tasked with introducing my coworkers into the inner workings of the iPhone, and there are a good number of pointers that I find myself saying over and over again. I'd like to share my best practices with everyone, as well as collect more pointers and opinions from the community at large.
    Care and Handling:
    First - wash your hands, often. Now I know we all do this often anyway, but I'd like to point out that a healthy amount of hand washing will really go a long way to keep your iPhone screen smudge free. The worst offender, unfortunately, is doughnuts. A small layer of sugar will render that area un-tappable, without any real indication that it has done so. If you are frantically tapping the screen on the iPod button and nothing is happening, clean your phone before you do a hard reset.
    Second - Pockets. Keeping your phone in your front pocket is natural and what most of us do. In these summer months, however, keeping your phone in a sweaty front pocket can do a good deal to the dirt level of the screen. If you find yourself cleaning your phone constantly, try a belt clip.
    Lastly - Battery Life. Your iPhone's battery life is in your hands, literally. Being aware of your power consumption and planning accordingly is going to be infinitely more important that the battery's native charge-holding ability. This goes especially for the day of purchase - as tempting as it may be to open the box and activate, immediately running around the house watching YouTube, it is best to let the phone charge for 12 hours before use. Charging the phone every night is an absolute must, skipping a day will kill the battery life as your ride the bottom edge the following day. Most of us have access to a USB port while we're at work, best idea will be to plug in your phone when you sit down at your desk.
    iPod:
    Large Libraries: In the opening weekend, I got many complaints that you cannot manually manage your music. There is a workaround that has made me change the way I work with all of my iPods: the iPhone specific playlist. Simply create a playlist with all of the music you wish to put on your phone and sync that one playlist. This also helps with sync time - you have a start sync and an end sync, not a constant sync all throughout your music management, slowing your computer down in the process.
    TV Shows: I watch a lot of MST3K, which I have organized into iTunes as TV shows, split into seasons, the works. The problem that has arisen, therefore, is the one of selective synchronization - you cannot specifically select the TV show you want to sync to the device, instead getting the choices to sync all, unwatched, or latest shows. This is problematic when each show is 700MB large. Here's the work around - select all of the episodes of a specific show and right click, selecting "Mark as Not New", removing all of the little blue dots from the episodes. Select the one, three, or five episodes, and right click them, selecting "Mark as New", then sync the last one, three, or five unwatched episodes. The shows you selected will sync.
    iPhoto:
    Many users are complaining that iPhoto opens whenever the phone is connected. This is not a preference of the phone, but rather iPhoto. Remember when you first launched iPhoto and it asked you if you wanted to use iPhoto whenever your camera was attached? iPhoto is detecting that your phone is a camera and launching, just as you told it to do.
    Mail:
    POP accounts - too many unread messages: When first adding a POP account, all of the messages downloaded to the phone arrive as unread. Tapping a message, tapping back, and then tapping the next message can get tedious. Here's the workaround - tap the small down arrow to the upper right hand side of the screen, watching closely to the number next to Inbox. When that number goes down by one, tap the arrow again. If that number hasn't gone down yet, wait a sec, and do not try to tap tap tap tap tap, you'll flood the input queue and crash Mail.
    Syncing Mail accounts - All too often people blame the iPhone when their mail does not work. A perfect test is sync you accounts from Mail. If they work in mail, they'll work on the phone, if they are unreliable in Mail, they will also be unreliable on the phone. The Mail client on the iPhone is just as powerful as any other mail client in terms of how it connects to mail servers, if you are having problems you need to check your settings before blaming the hardware. If you prefer to leave your install of Mail.app alone, create a new user account on your Mac, set up all of the accounts you want there, and use iTunes to sync that data to the phone. Make sure to remove that portion of sync from your actual user account's instance of iTunes, however, or it will all sync back.
    This message has not been downloaded from the server: This message has snagged a couple users, but upon investigation, these users have filled their iPhones to the absolute brim with music and video. It hasn't been downloaded from the server because there is no space to download to - this also applies to the Camera application dumping to the Home screen. Because there is no space, it can't add any new data. Make some room, then be patient as the mail client gets to that message in cleanup (often a sync or reboot will clear it up).
    Safari:
    Safari and iPod: Many users have reported iPod stopping in the middle of browsing, often pouting and pursing their lips crying, "This is terrible, I can't even browse the web and listen to music at the same time?". I then check their phone, and lo and behold they have upwards of eight separate pages open at the same time. This device (like every other computer out there) has a finite amount of memory, each page taking up a significant portion depending on how busy the page is. I've routinely gotten through entire albums while browsing through Safari, but I've got one page open in total, and it's usually mostly text. Keep it to one or two pages open and iPod will run forever if you let it.
    Web Apps: "This web app is terrible, it keeps booting me to Home!" When was your last reboot? How many other pages are open? In the same vein as Safari and iPod, Web Apps need a good deal of breathing room - give it to them. Close down other pages, stop iPod, or even reboot. Give the app a clean slate and it will perform, every time. iPhoneRemote users will attest to this.
    iCal:
    Multiple Calendars - Default Calendar: When adding a new appointment, it adds to the default calendar. Appointments can't be shunted to the correct calendar until after sync anyway, so create an "iPhone" calendar and make that the default. Because it's in that calendar, you'll know enough to move it to the appropriate calendar after sync.
    Please feel free to add your own best practices, and ask questions, too.

    is there any application you can get for the iphone to enlarge text and phone numbers ?
    If included with an email or on a website, yes with no application needed.
    If you are referring to the text size for your iPhone's contact list, no.
    can you insert a phone number from your contact list into a text message ?
    No.
    i cant seem to figure it out, does the alarm clock work if you turn off the phone at night,
    No - powered off with the iPhone means powered off. Any phone that provides for this is not powered off - it is in deep sleep or deep standby mode, which the iPhone does not support. If you don't want your phone ringing or don't want to receive SMS at night but you want to use the iPhone's alarm feature as a wake-up alarm, you can turn on Airplane Mode before going to bed, which will also conserve the battery if your iPhone is not plugged in at night.
    can you send a multi media text message ?
    No.

  • Best practices for setting up projects

    We recently adopted using Captivate for our WBT modules.
    As a former Flash and Director user, I can say it’s
    fast and does some great things. Doesn’t play so nice with
    others on different occasions, but I’m learning. This forum
    has been a great source for search and read on specific topics.
    I’m trying to understand best practices for using this
    product. We’ve had some problems with file size and
    incorporating audio and video into our projects. Fortunately, the
    forum has helped a lot with that. What I haven’t found a lot
    of information on is good or better ways to set up individual
    files, use multiple files and publish projects. We’ve decided
    to go the route of putting standalones on our Intranet. My gut says
    yuck, but for our situation I have yet to find a better way.
    My question for discussion, then is: what are some best
    practices for setting up individual files, using multiple files and
    publishing projects? Any references or input on this would be
    appreciated.

    Hi,
    Here are some of my suggestions:
    1) Set up a style guide for all your standard slides. Eg.
    Title slide, Index slide, chapter slide, end slide, screen capture,
    non-screen capture, quizzes etc. This makes life a lot easier.
    2) Create your own buttons and captions. The standard ones
    are pretty ordinary, and it's hard to get a slick looking style
    happening with the standard captions. They are pretty easy to
    create (search for add print button to learn how to create
    buttons). There should instructions on how to customise captions
    somewhere on this forum. Customising means that you can also use
    words, symbols, colours unique to your organisation.
    3) Google elearning providers. Most use captivate and will
    allow you to open samples or temporarily view selected modules.
    This will give you great insight on what not to do and some good
    ideas on what works well.
    4) Timings: Using the above research, I got others to
    complete the sample modules to get a feel for timings. The results
    were clear, 10 mins good, 15 mins okay, 20 mins kind of okay, 30
    mins bad, bad, bad. It's truly better to have a learner complete
    2-3 short modules in 30 mins than one big monster. The other
    benefit is that shorter files equal smaller size.
    5) Narration: It's best to narrate each slide individually
    (particularly for screen capture slides). You are more likely to
    get it right on the first take, it's easier to edit and you don't
    have to re-record the whole thing if you need to update it in
    future. To get a slicker effect, use at least two voices: one male,
    one female and use slightly different accents.
    6) Screen capture slides: If you are recording filling out
    long window based databse pages where the compulsory fields are
    marked (eg. with a red asterisk) - you don't need to show how to
    fill out every field. It's much easier for the learner (and you) to
    show how to fill out the first few fields, then fade the screen
    capture out, fade the end of the form in with the instructions on
    what to do next. This will reduce your file size. In one of my
    forms, this meant the removal of about 18 slides!
    7) Auto captions: they are verbose (eg. 'Click on Print
    Button' instead of 'Click Print'; 'Select the Print Preview item'
    instead of 'Select Print Preview'). You have to edit them.
    8) PC training syntax: Buttons and hyperlinks should normally
    be 'click'; selections from drop down boxes or file lists are
    normally 'select': Captivate sometimes mixes them up. Instructions
    should always be written in the correct order: eg. Good: Click
    'File', Select 'Print Preview'; Bad: Select 'Print Preview' from
    the 'File Menu'. Button names, hyperlinks, selections are normally
    written in bold
    9) Instruction syntax: should always be written in an active
    voice: eg. 'Click Options to open the printer menu' instead of
    'When the Options button is clicked on, the printer menu will open'
    10) Break all modules into chapters. Frame each chapter with
    a chapter slide. It's also a good idea to show the Index page
    before each chapter slide with a progress indicator (I use an
    animated arrow to flash next to the name of the next chapter), I
    use a start button rather a 'next' button for the start of each
    chapter. You should always have a module overview with the purpose
    of the course and a summary slide which states what was covered and
    they have complete the module.
    11) Put a transparent click button somewhere on each slide.
    Set the properties of the click box to take the learner back to the
    start of the current chapter by pressing F2. This allows them to
    jump back to the start of their chapter at any time. You can also
    do a similar thing on the index pages which jumps them to another
    chapter.
    12) Recording video capture: best to do it at normal speed
    and be concious of where your mouse is. Minimise your clicks. Most
    people (until they start working with captivate) are sloppy with
    their mouse and you end up with lots of unnecessarily slides that
    you have to delete out. The speed will default to how you recorded
    it and this will reduce the amount of time you spend on changing
    timings.
    13) Captions: My rule of thumb is minimum of 4 seconds - and
    longer depending on the amount of words. Eg. Click 'Print Preview'
    is 4 seconds, a paragraph is longer. If you creating knowledge
    based modules, make the timing long (eg. 2-3 minutes) and put in a
    next button so that the learner can click when they are ready.
    Also, narration means the slides will normally be slightly longer.
    14) Be creative: Capitvate is desk bound. There are some
    learners that just don't respond no matter how interactive
    Captivate can be. Incorporate non-captivate and desk free
    activities. Eg. As part of our OHS module, there is an activity
    where the learner has to print off the floor plan, and then wander
    around the floor marking on th emap key items such as: fire exits;
    first aid kit, broom and mop cupboard, stationary cupboard, etc.
    Good luck!

Maybe you are looking for

  • Shared calendars

    Hello everybody! Can shared calendars be used and modified by different users? for example: i have a shared calendar that syncs with .mac named "production" and 10 different user on that calendar. I want that the name of the editor to publish togethe

  • Picture display without covering the circle behind

    Dear All, I'm having a great difficulty to display a picture without covering the 'circle' behind. I have a circle at the center of the monitor. The circle is draw by draw circle .vi. After certain time, a picture is displayed at the center. But the

  • Trouble with Facebook app

    last week my iphone 4 FB app stopped giving me the camera icon on photo albums for me to upload pictures. Have deleted the app twice and reinstalled still no luck. the rest of the fb app works. But not this. also had alot of trouble with pandora too.

  • Le app non si aggiornano, perchè?

    Da ormai un pò di tempo provo ad aggiornare le mie applicazioni, ma non succede niente. Mi spiego meglio: 1) Sull' App Store del mio Iphone 5 mi viene segnalato che ci sono aggiornamenti disponibili. 2) Apro l'App Store e trovo tutte le mie applicazi

  • Stop ripping people off with the BBU

    I am extremely unhappy with Verizon - especialy the BBU. It is constantly beeping even after ordering a new battery less than 4 months ago. When I call Verizon to help remedy the problem, I have to sit through at least 15 minutes of automated service