Domenico Maria Giffone's Profile

Member since Sep 29, 2006, follows 0 people, 0 public groups, 613 public bookmarks (857 total).

More »
Tags

Recent Tags:
Top Tags:

More »
Recent Bookmarks and Annotations

  • 20+ Firefox Add-ons for web developers | Veera Sundar | Java, Web, Design and much more on 2009-11-13
  • Log4j Tutorial: Additivity – what and why? | Veera Sundar | Java, Web, Design and much more on 2009-11-13
  • InfoQ: Interview and Book Excerpt: Mark Richards' Java Message Service 2nd Edition on 2009-09-29
    • Spring, on the other hand, supports three types of asynchronous message listeners (MDPs). The first type of MDP matches closely with its MDB counterpart and implements the javax.jms.MessageListener interface and the corresponding onMessage() method, requiring you to process a message object of type javax.jms.Message. The second type is similar to the first, but implements a Spring framework SessionAwareMessageListener, allowing the javax.jms.Session object to be passed into the onMessage() method along with the message object, making it easy to send messages or responses after receiving them. The third type of MDP (my favorite) is a true POJO that uses a Spring MessageListenerContainer. With the third type of MDP, Spring will handle all of the message conversion automatically for you, allowing you to construct an asynchronous message listener (MDP) that has a method name like processTrade() that takes in a String argument containing some XML from the message payload rather than a non-descriptive method named onMessage() that takes a message object.
    • My favorite "gotcha" is setting the message expiration of a message. Because the JMS API exposes the message header properties in the javax.jms.Message object through standard getters and setters, developers are often tempted to invoke the message.setJMSExpiration() directly to set the message expiration. However, the JMS provider will overwrite every message header with the exception of the JMSReplyTo, JMSCorrelationID, and sometimes the JMSType. Therefore, when you set the message expiration using the header property setter method directly, the message will in fact never expire. Instead, you need to use the setTimeToLive() method on the MessageProducer interface. The same is true with setting the message priority; invoking message.setJMSPriority() will not set the priority of the message. Instead, you need to use the setPriority() method on the MessageProducer interface
  • GUI Architectures on 2009-09-01
    • Model-View-Presenter (MVP)
    • packaging all the edits to the model in a command -
      this provides a good foundation for providing undo/redo behavior
    • 1 more annotations...
  • InfoQ: The First Few Milliseconds of an HTTPS Connection on 2009-08-02
    • You pick two huge prime numbers "p" and "q." Multiply them to get "n = p*q." Next, you pick a small public exponent "e" which is the "encryption exponent" and a specially crafted inverse of "e" called "d" as the "decryption exponent." You then make "n" and "e" public and keep "d" as secret as you possibly can and then throw away "p" and "q" (or keep them as secret as "d"). It's really important to remember that "e" and "d" are inverses of each other.


      Now, if you have some message, you just need to interpret its bytes as a number "M." If you want to "encrypt" a message to create a "ciphertext", you'd calculate:


      C ≡ Me (mod n)


      This means that you multiply "M" by itself "e" times. The "mod n" means that we only take the remainder (e.g. "modulus") when dividing by "n." For example, 11 AM + 3 hours ≡ 2 (PM) (mod 12 hours). The recipient knows "d" which allows them to invert the message to recover the original message:


      Cd ≡ (Me)d ≡ Me*d ≡ M1 ≡ M (mod n)


      Just as interesting is that the person with "d" can "sign" a document by raising a message "M" to the "d" exponent:


      Md ≡ S (mod n)


      This works because "signer" makes public "S", "M", "e", and "n." Anyone can verify the signature "S" with a simple calculation:


      Se ≡ (Md)e ≡ Md*e ≡ Me*d ≡ M1 ≡ M (mod n)


      Public key cryptography algorithms like RSA are often called "asymmetric" algorithms because the encryption key (in our case, "e") is not equal to (e.g. "symmetric" with) the decryption key "d". Reducing everything "mod n" makes it impossible to use the easy techniques that we're used to such as normal logarithms. The magic of RSA works because you can calculate/encrypt C ≡ Me (mod n) very quickly, but it is really hard to calculate/decrypt Cd ≡ M (mod n) without knowing "d." As we saw earlier, "d" is derived from factoring "n" back to its "p" and "q", which is a tough problem.


  • Creating WebLogic Server Applications on 2009-07-30


    • Class Loading for Shared Classes


      The classes and libraries stored under APP-INF/classes and APP-INF/lib are available to all modules in the Enterprise Application. The application classloader always attempts to resolve class requests by first looking in APP-INF/classes, then APP-INF/lib.

  • cherryonext - Google Code on 2009-07-10
    • cherryonext
  • Graphical Business Process Monitoring - Java CAPS - wikis.sun.com on 2009-06-19
    • Graphical Business Process Monitoring
  • BPEL Monitor - OpenESB: the Open Source ESB for SOA & Integration on 2009-06-19
    • BPEL Monitor
  • Virus scanning with ClamAV and OpenESB - Java CAPS - wikis.sun.com on 2009-06-19
    • Virus scanning with ClamAV and OpenESB

More »
Bookmark Lists

Diigo is about better ways to research, share and collaborate on information. Learn more »

Join Diigo