Thursday, January 16, 2014

Getting Started with Apache Tomcat

Requirements:

  • compatible JDK

Steps:

  1. Download Tomcat at http://tomcat.apache.org/download-60.cgi
  2. Install Tomcat. http://tomcat.apache.org/tomcat-6.0-doc/setup.html
    Complete Intructions: see RUNNING.txt
    Environment variables to set:
    CATALINA_HOME - location of root directory of Tomcat bin
         - Ex. CATALINA_HOME=C:\Apps\apache-tomcat-6.0.37
    CATALINA_BASE - location of active Tomcat, defaults to CATALINA_HOME
    JRE_HOME or JAVA_HOME - If both JRE_HOME and JAVA_HOME are specified, JRE_HOME is used.
         - Ex. JAVA_HOME=C:\Apps\Java\jdk150_15
  3. sdas
Source:
http://tomcat.apache.org

Friday, November 1, 2013

English Grammar Reminders

direct vs indirect object
Direct object is often part of the predicate and is what the verb is being done to. To identify the direct object ask the question: Subject + Verb + What/Whom?
Indirect object cannot exist without direct object. It answers the question: To/For/From whom?
Ex.
She gave some cookies. She + gave + what? >> cookies (the direct object)
She gave the kids some cookies.
   She + gave the kids + what? >> cookies (the direct object)
   To whom did she gave cookies? >> kids (indirect object)

transitive vs intransitive verb
Transitive verbs require direct object while intransitive verb does not.
Ex.
The child broke the glass. >> transitive, without "the glass", the sentence in incomplete
The child arrived. >> intransitive, does not need direct object
The child eats every afternoon. The child eats the cake. >> eats is both transitive and intransitive

I or me
The rules around the use of the pronouns ‘I’ and ‘me’ can be tricky. A simple way to test whether you’re using the right one is to think about whether a statement would still make sense if you removed the other person. You wouldn’t say, “The car beeped at I” so the correct pronoun is ‘me’.

apostrophe
Expressions of time are also known as ‘temporal expressions’. When used in temporal expressions, the apostrophe is placed before the ‘s’ for single units and after for multiple units.
Ex.
I will be 30 in two years’ time.
I will be 29 in one year’s time.

that or which
You can remove the clause containing ‘which’ from a sentence without changing the meaning. ‘That’, however, is necessary.
Ex.
Phones that have cameras are generally more expensive.
My bedroom, which is currently pink, needs painting.

fewer or less
If you can count the number of items (count nouns) use ‘fewer’. If not, you’re probably referring to mass nouns so use ‘less’. Time, money and distance are exceptions – use ‘less’ for these too. So even if you can count how many hours a meeting lasted for, you’d say, “The meeting lasted for less than two hours.”
Ex.
We need less furniture in this office.
Could we get by with fewer desks?

i.e. or e.g.
‘E.g.’ is used to give an example. ‘I.e.’ is used to give more information.
Some animals are really cute, e.g. kittens and puppies.
The primary colours ( i.e. red, yellow and blue) are my favorites.

who or whom
‘Whom’ is used when referring to the object of a sentence. Use ‘who’ when referring to the subject of a sentence. There’s a trick to help you remember: If you can answer with ‘he’, use ‘who’ (e.g. ‘he ate all the doughnuts’). If you can answer with ‘him’ use ‘whom’ (e.g. ‘I saw him at the bar’). Just remember that ‘him’ and ‘whom’ both end in the letter m.
Ex.
Whom did you see at the bar last night?
I can’t think who would have eaten all the doughnuts.

lay or lie
‘Lay’ requires a direct object (e.g. in the sentence above, the direct object is the table) and ‘lie’ does not.
Ex.
Why don’t you go and lie down?
I’m going to lay the book on the table.

bored of, bored by, or bored with
Although ‘of’ is commonly used after ‘bored’, this is technically incorrect. Always use ‘with’ or ‘by’ in formal writing.
Ex.
I’m bored with this.
I’m bored by math class.

may and might
“May” implies a possibility. “Might” implies far more uncertainty.
Ex.
“You may get drunk if you have two shots in ten minutes” implies a real possibility of drunkenness.
“You might get a ticket if you operate a tug boat while drunk” implies a possibility that is far more remote.

farther and further
The word “farther” implies a measurable distance. “Further” should be reserved for abstract lengths you can't always measure.
Ex.
I threw the ball ten feet farther than Bill.
The financial crisis caused further implications.

since and because
“Since” refers to time. “Because” refers to causation.
Ex.
Since I quit drinking I’ve married and had two children.
Because I quit drinking I no longer wake up in my own vomit.

disinterested and uninterested
Contrary to popular usage, these words aren’t synonymous. A “disinterested” person is someone who’s impartial. For example, a hedge fund manager might take interest in a headline regarding the performance of a popular stock, even if he's never invested in it. He’s “disinterested,” i.e., he doesn’t seek to gain financially from the transaction he’s witnessed. Judges and referees are supposed to be "disinterested." If the sentence you’re using implies someone who couldn't care less, chances are you’ll want to use “uninterested.”

anxious
Unless you’re frightened of them, you shouldn't say you’re “anxious to see your friends.” You’re actually “eager,” or "excited." To be “anxious” implies a looming fear, dread or anxiety. It doesn’t mean you’re looking forward to something.

different than and different from
The adjective “different” is used to draw distinction. So, when “different” is followed by a  preposition, it should be “from,” similar to “separate from,” “distinct from,” or “away from.” There are rare cases where “different than” is appropriate, if “than” operates as a conjunction. When in doubt, use “different from.”
Ex.
My living situation in New York was different from home.
Development is different in New York than in Los Angeles.

bring and take
In order to employ proper usage of “bring” or “take,” the writer must know whether the object is being moved toward or away from the subject. If it is toward, use “bring.” If it is away, use “take.” Your spouse may tell you to “take your clothes to the cleaners.” The owner of the dry cleaners would say “bring your clothes to the cleaners.”

affect and effect
“Affect” is almost always a verb (e.g., Facebook affects people’s attention spans), and “effect” is almost always a noun (e.g., Facebook's effects can also be positive). There are some exceptions. “Effect” may be used as a transitive verb, which means to bring about or make happen. e.g., My new computer effected a much-needed transition from magazines to Web porn. There are similarly rare examples where “affect” can be a noun. e.g., His lack of affect made him seem like a shallow person.

irony and coincidence
Too many people claim something is the former when they actually mean the latter. For example, it’s not “ironic” that “Barbara moved from California to New York, where she ended up meeting and falling in love with a fellow Californian.” The fact that they’re both from California is a "coincidence." "Irony" is the incongruity in a series of events between the expected results and the actual results. "Coincidence" is a series of events that appear planned when they’re actually accidental. So, it would be "ironic" if “Barbara moved from California to New York to escape California men, but the first man she ended up meeting and falling in love with was a fellow Californian.”

nauseous vs nauseated
Undoubtedly the most common mistake I encounter. Contrary to almost ubiquitous misuse, to be “nauseous” doesn't mean you've been sickened: it actually means you possess the ability to produce nausea in others. e.g., That week-old hot dog is nauseous. When you find yourself disgusted or made ill by a nauseating agent, you are actually “nauseated.” e.g., I was nauseated after falling into that dumpster behind the Planned Parenthood.

Source:
http://m.staples.ca/sbdca/en_CA/cre/programs/grammarquiz/
http://litreactor.com/columns/20-common-grammar-mistakes-that-almost-everyone-gets-wrong

Sunday, September 22, 2013

Understanding Character Sets, Encoding and Unicode

Character Set/charset

- set of characters that may or may not define an encoding
- Examples: ASCII (covers all English characters), ISO/IEC 646, Unicode (covers characters from all living languages in the world)

Encoding/Character encoding/Character set encoding

- General meaning: a set of rules or system for representing a character in some form such as bit pattern, sequence of natural numbers, octets, or electrical pulses, e.g. Morse code, Baudot code, ASCII and Unicode
- More strict meaning: a mapping of characters to how they are stored in memory (bit sequence)
- Examples: ASCII encoding, Unicode encodings like UTF-8 and UTF-16


Source of Encoding Standards:

  1. Standards bodies
    ANSI (American National Standards Institute)
    - is the U.S. standards organization that creates standards (like the ASCII) for the computer industry
    ISO (International Organization for Standardization)
    - largest developer of voluntary International Standards
    - adopted ASCII as ISO 646:IRV
  2. Independent software vendors
    IBM
    - developed codepage 437 for DOS, codepage 852 for Eastern European languages that use Latin script, codepage 855 for Russian and some other Eastern European languages that use Cyrillic script, etc.
    Windows
    - developed the familiar Windows codepages, such as codepage 1252, alternately known as "Western", "Latin 1" or "ANSI"


Examples of character sets or encodings


ASCII (American Standard Code for Information Interchange)
- is a 7-bit encoding scheme used to encode letters, numerals, symbols, and device control codes as fixed-length codes using integers
- includes definitions for 128 characters
- 128 to 255 is free causing varied character representation of 128 to 255 resulting to varied ASCII extensions


EBCDIC (Extended Binary Coded Decimal Interchange Code)
- is an 8-bit character encoding used mainly on IBM mainframe and IBM midrange computer operating systems.


Codepage 1252 and ISO 8859-1
- ISO 8859-1 “Latin 1” is a standard developed by American National Standards Institute (ANSI)
- Codepage 1252 is a standard created by the Microsoft for Western European languages based on an early draft of the ANSI proposal that later became ISO 8859-1 “Latin 1”
- Codepage 1252 was finalised before ISO 8859-1 was finalised, however, and the two are not the same: Codepage 1252 is a superset of ISO 8859-1

ANSI codepage
- Microsoft referred Codepage 1252 as "the ANSI codepage" but around the time of Windows 95 development, Microsoft began to use the term "ANSI" in a different sense to mean any of the Windows codepages, as opposed to Unicode
- currently in the context of Windows, the terms "ANSI text" or "ANSI codepage" should be understood to mean text that is encoded with any of the legacy 8-bit Windows codepages rather than Unicode. It really should not be used to mean the specific codepage associated with the US version of Windows, which is Codepage 1252.

Other Legacy encoding standards
- most encode each character in terms of a single 8-bit processing unit, or byte
- some are double-byte encodings like Microsoft codepages for Chinese, Japanese and Korean


UTF-8 and Unicode


Unicode
- is a standard developed by the Unicode Consortium that assigns a unique number/identifier for every character, no matter what the platform, no matter what the program, no matter what the language
- In Unicode, every character is assigned a unique number called "code point"

Ways of Encoding Unicode

  1. UCS-2 (because it has two bytes) - the traditional store-it-in-two-byte methods
  2. UTF-16 (because it has 16 bits) - you have to figure out if it's high-endian UCS-2 (most significant byte first) or low-endian UCS-2 (least significant byte first) through the BOM (byte-order mark)
  3. UTF-8 (Unicode Transformation Format 8-bit)
    - is a variable-width encoding that can represent every character in the Unicode character set. It was designed for backward compatibility with ASCII and to avoid the complications of endianness and byte order marks in UTF-16 and UTF-32 
  4. UTF-7 - similar to UTF-8 but guarantees that the high bit will always be zero
  5. UCS-4 - stores each code point in 4 bytes


Other related terms


Code Page

- is a term that originated from IBM that essentially means the same as character set and encoding

Internationalized URL / URL encoding / Percent encoding 

- see https://www.w3.org/International/articles/idn-and-iri/http://www.url-encode-decode.com/

Sources:
http://www.unicode.org/
http://en.wikipedia.org
http://www.joelonsoftware.com/articles/Unicode.html
http://scripts.sil.org/cms/scripts/page.php?item_id=IWS-Chapter03
http://mikesusan.com/ascii.html
http://www.utf-8.com/
http://kunststube.net/encoding/

How to enable Search Widget/Gadget

If the the Search widget or gadget of your Blogger blog is not working but the embedded search box on the Navigation bar at the top is working, the cause could be the setting of robots.txt.

  1. View the robots.txt at http://YOURBLOGURL.blogspot.com/robots.txt. If Disallow property is set to /search, search is ignored.
  2. Go to Blogger Dashboard > Select Blog > Select Settings tab > Search Preferences
  3. Enable Custom robots.txt
  4. Copy the content of current robots.txt but set the Disallow property to blank.
  5. Save changes

Sunday, September 8, 2013

Derby

http://db.apache.org/derby/docs/10.9/devguide/cdevdvlp17453.html

Steps involved during Execution of a Java Program

  1. JVM startup
  2. Loading – finding binary representation of class/interface then constructing the Class object
  3. Linking – combining class/interface into the run-time state of the JVM so that it can be executed
    1. Verification - semantic/structure validation
    2. Preparation - storage allocation, all static fields are created and initialized with default values
    3. Resolution – optionally resolve symbolic reference to other classes/interfaces
  4. Initialization – static initialization 
    1. superclass/superinterface static initialization
      • superclasses are initialized before subclasses
      • interface initialization does not initialize superinterfaces
      • only the class that declares static field is initialized, even though it might be referred to through the name of a subclass, a subinterface, or a class that implements an interface
    2. all static explicit field initializers and static initialization blocks are executed in textual order
  5. Instantiation - creation of object/class instance
    All the instance variables, including those declared in superclasses, are initialized to their default values first.
    1. start the constructor
    2. call explicit constructor this() if available
    3. call explicit/implicit super() unless class is Object – process recursively using same steps a. to e. 
    4. all non-static field initializers and non-static initialization blocks are executed in textual order
    5. execute the rest of the body of constructor
  6. Finalization – finalize() method is called before storage for object is reclaimed by GC
  7. Unloading – happens if its classloader is reclaimed by GC. Bootstrap loader may not be unloaded.
  8. Program Exit

Monday, August 12, 2013

DWR error handling

Exception/error handling of DWR calls can be centralized by setting the handlers. More here: http://directwebremoting.org/dwr/documentation/browser/errors.html


dwr.engine.setErrorHandler(UI.errorHandler);
dwr.engine.setTextHtmlHandler(UI.textHtmlHandler);

 // Handler for errors and exceptions
 errorHandler : function(msg, param2) {
  UI.hideLoading();
  Utils.resetClick();
  View.error(msg, 700)
 },

 // Handler when Ajax returns a text such as session timeout, page not found etc...
 textHtmlHandler : function() {
  UI.hideLoading();
  //View.error("Your session has expired, please login again." );
   document.location = '/adapt/web/jsp/timeout.jsp';
 },