Monday, May 21, 2012

OCMJEA badge and diploma

On Friday morning I received the diploma and the badge for OCMJEA from Dublin(Ireland). It was quite fast how Oracle managed to send me the package, I confirmed the address only on Tuesday and Friday morning the package from Oracle arrived, they announce me that I passed all steps on Monday morning. The date of certification seems to be the date when I downloaded the assignment for step 2. I'm happy now and I really want to apply what I learned and to set the standard for excellence :).

Monday, May 14, 2012

Oracle Certified Master Java EE 5 Enterprise Architect passed today

Today I received a notification from Oracle that I have passed the Oracle Certified Master, Java EE 5 Enterprise Architect certification and I'm among the elite 1% of certified Java professionals who have gone on to achieve the Java Enterprise Architect certification :) I completed all four steps required and I'm very happy now after a long term motivated study :) It was a lot of learning and trying different uml tools, running snippets of code and most important thinking about problems that arise in enterprise architectures.

Monday, February 6, 2012

caps lock warning in web app

JQuery Bubble Popup for displaying the bubble http://www.vegabit.com/jquery_bubble_popup_v2/

and the following js:

   1:  
   2: function initCaps() {
   3:                $('#password').CreateBubblePopup({
   4:                    innerHtml : w_msg,
   5:                    manageMouseEvents : false,
   6:                    innerHtmlStyle : {
   7:                        color : '#ffffdf',
   8:                        'text-align' : 'center'
   9:                    },
  10:                    position: 'left',
  11:                    alwaysVisible: true,
  12:                    dropShadow: true,
  13:                    themeName : 'all-blue',
  14:                    themePath: '../img/jquerybubblepopup-theme'
  15:  
  16:                });
  17:                $('#password111').CreateBubblePopup({
  18:                    innerHtml : w_msg,
  19:                    manageMouseEvents : false,
  20:                    innerHtmlStyle : {
  21:                        color : '#ffffdf',
  22:                        'text-align' : 'center'
  23:                    },
  24:                    position: 'right',
  25:                    alwaysVisible: true,
  26:                    dropShadow: true,
  27:                    themeName : 'all-blue',
  28:                    themePath: '../img/jquerybubblepopup-theme',
  29:                });
  30:                $('#old_password, #new_password, #confirm_password, #google_password, #imap_password').CreateBubblePopup({
  31:                    innerHtml : w_msg,
  32:                    manageMouseEvents : false,
  33:                    innerHtmlStyle : {
  34:                        color : '#ffffdf',
  35:                        'text-align' : 'center'
  36:                    },
  37:                    position: 'top',
  38:                    alwaysVisible: true,
  39:                    dropShadow: true,
  40:                    themeName : 'all-blue',
  41:                    themePath: '../img/jquerybubblepopup-theme',
  42:                });
  43:              
  44:                $('#google_password, #imap_password').CreateBubblePopup({
  45:                    innerHtml : w_msg,
  46:                    manageMouseEvents : false,
  47:                    innerHtmlStyle : {
  48:                        color : '#ffffdf',
  49:                        'text-align' : 'center'
  50:                    },
  51:                    position: 'right',
  52:                    alwaysVisible: true,
  53:                    dropShadow: true,
  54:                    themeName : 'all-blue',
  55:                    themePath: '../img/jquerybubblepopup-theme',
  56:                });
  57:              
  58:                $(':password').focusout(function(){
  59:                    $(':password').UnfreezeAllBubblePopups();
  60:                    $(':password').HideAllBubblePopups();
  61:                  
  62:                  
  63:                });
  64:                $('.w_close').click(function(){
  65:                    $(':password').UnfreezeAllBubblePopups();
  66:                    $(':password').HideAllBubblePopups();
  67:                });
  68:              
  69:              
  70: }
  71:  
  72: var capslock = {
  73:    init : function() {
  74:        if(!document.getElementsByTagName) {
  75:            return;
  76:        }
  77:        // Find all password fields in the page, and set a keypress event on them
  78:        var inps = document.getElementsByTagName("input");
  79:        for(var i = 0, l = inps.length; i < l; i++) {
  80:            if(inps[i].type == "password") {
  81:                capslock.addEvent(inps[i], "keypress", capslock.keypress);
  82:            }
  83:        }
  84:    },
  85:    addEvent : function(obj, evt, fn) {
  86:        if(document.addEventListener) {
  87:            capslock.addEvent = function(obj, evt, fn) {
  88:                obj.addEventListener(evt, fn, false);
  89:            };
  90:            capslock.addEvent(obj, evt, fn);
  91:        } else if(document.attachEvent) {
  92:            capslock.addEvent = function(obj, evt, fn) {
  93:                obj.attachEvent('on' + evt, fn);
  94:            };
  95:            capslock.addEvent(obj, evt, fn);
  96:        } else {
  97:            // no support for addEventListener *or* attachEvent, so quietly exit
  98:        }
  99:    },
 100:    keypress : function(e) {
 101:        var ev = e ? e : window.event;
 102:        if(!ev) {
 103:            return;
 104:        }
 105:        var targ = ev.target ? ev.target : ev.srcElement;
 106:        // get key pressed
 107:        var which = -1;
 108:        if(ev.which) {
 109:            which = ev.which;
 110:        } else if(ev.keyCode) {
 111:            which = ev.keyCode;
 112:        }
 113:        // get shift status
 114:        var shift_status = false;
 115:        if(ev.shiftKey) {
 116:            shift_status = ev.shiftKey;
 117:        } else if(ev.modifiers) {
 118:            shift_status = !!(ev.modifiers & 4);
 119:        }
 120:        if(((which >= 65 && which <= 90) && !shift_status) || ((which >= 97 && which <= 122) && shift_status)) {
 121:            // uppercase, no shift key
 122:            capslock.show_warning(targ);
 123:        } else {
 124:            capslock.hide_warning(targ);
 125:        }
 126:    },
 127:    show_warning : function(targ) {
 128:        /*
 129:        if(!targ.warning) {
 130:        targ.warning = document.createElement('img');
 131:        targ.warning.src = "http://farm3.static.flickr.com/2145/2067574980_3ddd405905_o_d.png";
 132:        targ.warning.style.position = "absolute";
 133:        targ.warning.style.top = (targ.offsetTop - 73) + "px";
 134:        targ.warning.style.left = (targ.offsetLeft + targ.offsetWidth - 5) + "px";
 135:        targ.warning.style.zIndex = "999";
 136:        targ.warning.setAttribute("alt", "Warning: Caps Lock is on");
 137:        if(targ.warning.runtimeStyle) {
 138:        // PNG transparency for IE
 139:        targ.warning.runtimeStyle.filter += "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://farm3.static.flickr.com/2145/2067574980_3ddd405905_o_d.png',sizingMethod='scale')";
 140:        }
 141:        document.body.appendChild(targ.warning);
 142:        } */
 143:  
 144:        if(! $('#password').IsBubblePopupOpen() && $('#password').is(":focus"))  {
 145:            $('#password').ShowBubblePopup();
 146:            $('#password').FreezeBubblePopup();
 147:        }
 148:      
 149:        if(! $('#password111').IsBubblePopupOpen() && $('#password111').is(":focus")){
 150:            $('#password111').ShowBubblePopup() ;
 151:            $('#password111').FreezeBubblePopup();
 152:        }
 153:  
 154:        if(! $('#old_password').IsBubblePopupOpen() && $('#old_password').is(":focus")){
 155:            $('#old_password').ShowBubblePopup();
 156:            $('#old_password').FreezeBubblePopup();
 157:        }
 158:      
 159:        if(! $('#new_password').IsBubblePopupOpen() && $('#new_password').is(":focus")){
 160:            $('#new_password').ShowBubblePopup();
 161:            $('#new_password').FreezeBubblePopup();
 162:        }
 163:  
 164:        if(! $('#confirm_password').IsBubblePopupOpen() && $('#confirm_password').is(":focus")){
 165:            $('#confirm_password').ShowBubblePopup();
 166:            $('#confirm_password').FreezeBubblePopup();
 167:        }
 168:      
 169:        if(! $('#google_password').IsBubblePopupOpen() && $('#google_password').is(":focus")){
 170:            $('#google_password').ShowBubblePopup();
 171:            $('#google_password').FreezeBubblePopup();
 172:        }
 173:      
 174:        if(! $('#imap_password').IsBubblePopupOpen() && $('#imap_password').is(":focus")){
 175:            $('#imap_password').ShowBubblePopup();
 176:            $('#imap_password').FreezeBubblePopup();
 177:        }
 178:  
 179:        // var alertMessage = "" + 'Caps ON' + "";
 180:        // $("#password").before(alertMessage);
 181:        // $("#capslock").fadeIn("slow");
 182:  
 183:    },
 184:    hide_warning : function(targ) {
 185:        /*
 186:        if(targ.warning) {
 187:        targ.warning.parentNode.removeChild(targ.warning);
 188:        targ.warning = null;
 189:        } */
 190:      
 191:        $(':password').UnfreezeAllBubblePopups();
 192:        $(':password').HideAllBubblePopups();
 193:  
 194:      
 195:        // $("#capslock").remove();
 196:    }
 197: };
 198: (function(i) {
 199:    var u = navigator.userAgent;
 200:    var e =    /*@cc_on!@*/false;
 201:    var st = setTimeout;
 202:    if(/webkit/i.test(u)) {st(function() {
 203:            var dr = document.readyState;
 204:            if(dr == "loaded" || dr == "complete") {i()
 205:            } else {st(arguments.callee, 10);
 206:            }
 207:        }, 10);
 208:    } else if((/mozilla/i.test(u) && !/(compati)/.test(u)) || (/opera/i.test(u))) {
 209:        document.addEventListener("DOMContentLoaded", i, false);
 210:    } else if(e) {(function() {
 211:            var t = document.createElement('doc:rdy');
 212:            try {t.doScroll('left');
 213:                i();
 214:                t = null;
 215:            } catch(e) {st(arguments.callee, 0);
 216:            }
 217:        })();
 218:    } else {
 219:        window.onload = i;
 220:    }
 221: })(capslock.init)