Showing posts with label Tech. Show all posts
Showing posts with label Tech. Show all posts

Thursday, November 15, 2012

The A6X processor အေၾကာင္း တေစ့တေစာင္း

The A6X processor
A6X လို႔ ေခၚတဲ့ A6 “Extreme”  ပရိုဆက္ဆာ ဆိုတာကေတာ့ စတုတၳမ်ိဳးဆက္ iPad မွာအသံုးျပဳထားတဲ့
Apple ကုမၸဏီရဲ႕ ေနာက္ဆံုးေပၚ မိုဘိုင္း chipset ျဖစ္ပါတယ္။ ၄င္းဟာ A5X ပရိုဆက္ဆာထက္ ႏွစ္ဆ ပိုမို စြမ္းေဆာင္ႏိုင္ပါတယ္။ARM core မ်ားကိုအသံုးျပဳထားၿပီး custom SoC (system on a chip)ျဖစ္တဲ့အဆိုပါ chip-set သစ္ဟာ CPU ရဲ႕ စြမ္းေဆာင္ရည္ထက္ ႏွစ္ဆပိုမိုသလို ဂရပ္ဖစ္ စြမ္းေဆာင္ရည္ ကိုလည္း ႏွစ္ဆပိုမိုေစပါတယ္။

A6X ပရိုဆက္ဆာဟာ A5X ခ်စ္ပ္ထက္ CPU နဲ႔ ဂရစ္ဖစ္ စြမ္းေဆာင္ရည္ကို ႏွစ္ဆ ပိုမိုေစတယ္လို႔ Apple ကုမၸဏီက ဆိုပါတယ္။တစ္နည္းအားျဖင့္ ဆိုရရင္ 1.4GHz dual-core A6X ဟာ 1.0GHz dual-core A9 ကို အေျခခံ ထားတဲ့ A5X ထက္ အခ်က္အလက္ လုပ္ေဆာင္မႈ ႏွစ္ဆ ပိုမိုတာ ျဖစ္ပါတယ္။ GPU အေန နဲ႔ PowerVR SGX554 MP4 ကိုအသံုးျပဳထားၿပီး ၄င္းဟာ A5X မွာပါဝင္တဲ့ PowerVR SGX 543 MP4  ထက္ စြမ္းေဆာင္ရည္ႏွစ္ဆပိုမိုပါတယ္။ iPad 3 မွာအသံုးျပဳခဲ့တဲ့ A5X ရဲ႕ clock speed ဟာ 1GHz သာရိွေပမယ့္ A6X ရဲ႕ CPU core မ်ားရဲ႕ clock speed ကေတာ့ 1.5GHz ရိွတယ္လို႔ဆိုပါတယ္။

       GPU အပိုင္းမွာေတာ့ အနည္းငယ္ ကြဲျပားပါတယ္။ Apple ဟာ A5X မွာ SGX543 GPU core ေလးခုကို အသံုးျပဳထားတဲ့အတြက္၄င္းဟာ SGX543 GPU core ႏွစ္ခုပါဝင္တဲ့ A5 ထက္ႏွစ္ဆပိုျမန္တယ္လို႔ဆိုပါတယ္။ A6X မွာေတာ့ SGX554 GPU core ေလးခုကိုအသံုးျပဳထားၿပီး၄င္းဟာ 2040x1532 pixel Retina display ကိုပါလုပ္ ေဆာင္ရန္လိုအပ္တဲ့အတြက္ဂရပ္ဖစ္စြမ္းေဆာင္ရည္ျမွင့္တင္မႈကို အေထာက္အပံမေပးႏိုင္ဘူးလို႔ ဆိုၾကပါတယ္။ ဒါေပမဲ့ Apple ကေတာ့ A6X ဟာႏွစ္ဆပိုျမန္တယ္လို႔ေျပာၾကားထားပါတယ္။

       ဒါ့အျပင္ 32nm နည္းပညာနဲ႔ျပဳလုပ္ထားတဲ့ A6X 45nm နည္းပညာနဲ႔ ျပဳလုပ္ထားတ့ဲ A5X ထက္ စြမ္းအင္
သံုးစြဲမႈပိုမိုနည္းပါးတဲ့အျပင္ iPad ရဲ႕အထူနဲ႔အေလးခ်ိန္ကိုလည္းေလ်ာ့ပါးေစပါတယ္။


 
                                                       Produced                                 - From October 2012 to Present
                                                         Designed by                            - Apple Inc.
                                                         Common manufacturer(s)   - Samsung Electronics
                                                         Max. CPU clock rate               - 1.4 GHz[1]
                                                         Min. feature size                     - 32 nm
                                                         Instruction set                         - ARMv7s
                                                         Microarchitecture                   - Swift
                                                         Product code                          - S5L8955X
                                                         Cores                                       - 2
                                                         L1 cache                                  - 32/32 kB
                                                         L2 cache                                  - 1024 kB
                                                         Predecessor                          - Apple A6
              



Monday, November 12, 2012

Blogger Animated Sassy Social Bookmark Gadget



မိမိတို့ရဲ့ Blog ကို Social Button အလန္းေလးနဲ့ လန္းေနေစဖို့အတြက္ အေပၚမွာ ျမင္ရတဲ့ Animated Sassy Social Bookmark Gadget ေလးကို ကုိယ့္ရဲ့ Blog မွာထည့္ၾကရေအာင္ . . .

ျပဳလုပ္နည္း -
ကဲ အရင္ဆံုး Blogger ရဲ့ Template > Edit HTML ကိုသြားပါ။
ျပီးရင္ Ctrl + F ကိုႏွိပ္ျပီး ေအာက္က ကုဒ္ကိုရွာပါ။
 </body>  


ေအာက္ကကုဒ္ကို </body> ရဲ့ အေပၚမွာ Save လိုက္ပါ။
 <!-- Start Social Sharing Widget Sassy Bookmarks HTML (techboxzero.blogspot.com)-->  
 <div class="shr_ss shr_publisher">  
 </div>  
 <!-- End Shareaholic Sassy Bookmarks HTML -->  
 <!-- Start Shareaholic Sassy Bookmarks settings -->  
 <script type="text/javascript">  
  var SHRSS_Settings = {"shr_ss":{"src":"//dtym7iokkjlif.cloudfront.net/media/downloads/sassybookmark","link":"","service":"5,7,2,313,38,201,88,74","apikey":"b87f5899d80a5edce8b5e55f58542ef0f","localize":true,"shortener":"bitly","shortener_key":"","designer_toolTips":true,"tip_bg_color":"black","tip_text_color":"white","viewport":true,"twitter_template":"${title} - ${short_link} via @Shareaholic"}};  
  </script>  
  <!-- End Shareaholic Sassy Bookmarks settings -->  
 <!-- Start Shareaholic Sassy Bookmarks script -->  
 <script type="text/javascript">  
     (function() {  
       var sb = document.createElement("script"); sb.type = "text/javascript";sb.async = true;  
       sb.src = ("https:" == document.location.protocol ? "https://dtym7iokkjlif.cloudfront.net" : "http://cdn.shareaholic.com") + "/media/js/jquery.shareaholic-publishers-ss.min.js";  
       var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(sb, s);  
     })();  
     </script>  
 <!-- End Shareaholic Sassy Bookmarks script -->  


********************************************************************************
အေပၚက အဆင့္ေတြအတိုင္း လုပ္ျပီးျပီးဆိုရင္ေတာ့ ကိုယ့္ရဲ့ Blog မွာ Animated Sassy Social Bookmark Gadget ေလးေရာက္ေနပါျပီ။ အဆင္မေျပတာမ်ားရွိရင္ Comment Box တြင္ ေမးျမန္းႏိုင္ပါသည္။



Saturday, November 10, 2012

Following Clock Cursor For Blogger


Mouse ေနာက္ကေန တေကာက္ေကာက္လိုက္ေနမဲ့ Clock Cursor Effect အလန္းေလး | မိမိတို့ Blog မွာထည့္ခ်င္တယ္ဆိုရင္ ေအာက္မွာ ျပဳလုပ္နည္းနဲ့ Code ေတြကို ေဖာ္ျပထားပါတယ္ . . .


ျပဳလုပ္နည္း
ပထမဆံုး Blogger ရဲ့ Template > Edit HTML ထဲကိုသြားပါ။
ျပီးရင္ Ctrl + F ႏွိပ္ျပီး ေအာက္ကကုဒ္ကို ရွာပါ . . .
 </head>  


ေတြျပီးဆိုရင္ ေအာက္ကကုဒ္ကို Copy လုပ္ျပီး </head> ရဲ့ အေပၚမွာ ထားျပီး Save လိုက္ပါ။
<!-- Following Clock Curosr -->  
<script src='http://techboxzero.googlecode.com/files/followingclock.js' type='text/javascript'/>  
<meta content='javascript rotating clock, javascript rotating clock follows mouse' name='keywords'/>  
<script type='text/javascript'>  
   var _gaq = _gaq || [];  
  _gaq.push([&#39;_setAccount&#39;, &#39;UA-19541584-1&#39;]);  
  _gaq.push([&#39;_trackPageview&#39;]);  
  (function() {  
   var ga = document.createElement(&#39;script&#39;); ga.type = &#39;text/javascript&#39;; ga.async = true;  
   ga.src = (&#39;https:&#39; == document.location.protocol ? &#39;https://ssl&#39; : &#39;http://www&#39;) + &#39;.google-analytics.com/ga.js&#39;;  
   var s = document.getElementsByTagName(&#39;script&#39;)[0]; s.parentNode.insertBefore(ga, s);  
  })();  
 </script>  



ျပီးရင္ Layout > Add A Gadget > HTML/JAVA ကိုေရြးေပးျပီး ေအာက္ကကုဒ္ကို ကူးထည့္ျပီး Save လိုက္ရင္ မိမိတို့ Blog မွာ Mouse ေနာက္ကတေကာက္ေကာက္ လိုက္ေနတဲ့ နာရီေလး ရပါျပီး။
 <!-- Start Following Cursor -->  
 <script type="text/javascript">  
 var ClockHeight = 40;  
 var ClockWidth = 40;  
 var ClockFromMouseY = 20;  
 var ClockFromMouseX = 80;  
 //Alter nothing below! Alignments will be lost!  
 var Clock_size = 1;var speed = 0.6;var ns4 = (document.layers);  
 var ymouse = 0;var xmouse = 0;var scrll = 0;  
 var Split;var Dsplit;  
 var HandHeight = ClockHeight / 4.5;  
 var HandWidth = ClockWidth / 4.5;  
 var HandY = -7;var HandX = -2.5;var step = 0.06;var currStep = 0;  
 var y = new Array();var x = new Array();var Y = new Array();var X = new Array();  
 var Dy = new Array();var Dx = new Array();var DY = new Array();var DX = new Array();  
 var faceElements = new Array();var dateElements = new Array();var hourElements = new Array();var minuteElements = new Array();  
 var secondElements = new Array();  
 function drawClock() {  
  var dayOfWeekNames = ["SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"];  
  var monthNames = ["JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER"];  
  var date = new Date();  
  var year = date.getYear();  
  if (year < 2000)year = year + 1900;  
  var dateRing = " " + dayOfWeekNames[date.getDay()] + " " + date.getDate() + " " + monthNames[date.getMonth()] + " " + year;  
  dateRing = dateRing.split("");  
  var hoursHand = "...";  
  hoursHand = hoursHand.split("");  
  var minutesHand = "....";  
  minutesHand = minutesHand.split("");  
  var secondsHand = ".....";  
  secondsHand = secondsHand.split("");  
  var faceRing = "1 2 3 4 5 6 7 8 9 10 11 12";  
  faceRing = faceRing.split(" ");  
  var a = Clock_size * 10;  
  Split = 360 / faceRing.length;  
  Dsplit = 360 / dateRing.length;  
  var i; for (i = 0; i < faceRing.length; i++) { y[i] = 0;x[i] = 0;Y[i] = 0;X[i] = 0;}  
  for (i = 0; i < dateRing.length; i++) {Dy[i] = 0;Dx[i] = 0;DY[i] = 0;DX[i] = 0;}  
  if (document.layers) {  
 //Here support only IE except Firefox  
   var props1 = '" top="0" left="0" height="' + a + '" width="' + a + '"><center><font size="-' + a + '" face="Arial"><b>';  
   var props2 = '" top="0" left="0" height="16" width="16"><center><font face="Arial"><b>';  
   document.write('<div id="funny-clock">');  
   document.write('<div class="clock-date">');  
   for (i = 0; i < dateRing.length; i++) {  
    document.write('<layer name="date-el' + i + props1 + dateRing[i] + '</b></font></center></layer>');  
    dateElements[i] = document.layers["date-el" + i];  
   }  
   document.write('</div><div class="clock-face">');  
   for (i = 0; i < faceRing.length; i++) {  
    document.write('<layer name="face-el' + i + props1 + faceRing[i] + '</b></font></center></layer>');  
    faceElements[i] = document.layers["face-el" + i];  
   }  
   document.write('</div><div class="clock-hours">');  
   for (i = 0; i < hoursHand.length; i++) {  
    document.write('<layer name="hours-el' + i + props2 + hoursHand[i] + '</b></font></center></layer>');  
    hourElements[i] = document.layers["hours-el" + i];  
   }  
   document.write('</div><div class="clock-minutes">');  
   for (i = 0; i < minutesHand.length; i++) {  
    document.write('<layer name="minutes-el' + i + props2 + minutesHand[i] + '</b></font></center></layer>');  
    minuteElements[i] = document.layers["minutes-el" + i];  
   }  
   document.write('</div><div class="clock-seconds">');  
   for (i = 0; i < secondsHand.length; i++) {  
    document.write('<layer name="seconds-el' + i + props2 + secondsHand[i] + '</b></font></center></layer>');  
    secondElements[i] = document.layers["seconds-el" + i];  
   }  
   document.write("</div></div>");  
  } else {  
 // Here supports Mozilla Firefox scripts  
   var clock = document.createElement("div");  
   // HTMLElement.id  
   clock.setAttribute("id", "funny-clock");  
   var fixedStyle1 = "position: absolute; top: 0; left: 0";  
   var fixedStyle2 = "position: absolute; top: 0; left: 0; width: " + a + "px; height: " + a + "px; text-align: center; font: bold " + a + "px/1 Arial, sans-serif";  
   var fixedStyle3 = "position: absolute; top: 0; left: 0; width: 16px; height: 16px;"+ " text-align: center; font: bold 16px/1 Arial, sans-serif";  
   var clockDate = clock.appendChild(document.createElement("div"));  
   clockDate.className = "clock-date";  
   // Opera doesn't parse ElementCSSInlineStyle.style.cssText  
   // IE doesn't parse HTMLElement.setAttribute("style", ...)  
   clockDate.setAttribute("style", fixedStyle1);  
   clockDate.style.cssText = fixedStyle1;  
   for (i = 0; i < dateRing.length; i++) {  
    var piece = clockDate.appendChild(document.createElement("span"));  
    piece.setAttribute("style", fixedStyle2);  
    piece.style.cssText = fixedStyle2;  
    // Node.textContent  
    piece.appendChild(document.createTextNode(dateRing[i]));  
    dateElements[i] = piece.style;  
   }  
   var clockFace = clock.appendChild(document.createElement("div"));  
   clockFace.className = "clock-face";  
   clockFace.setAttribute("style", fixedStyle1);  
   clockFace.style.cssText = fixedStyle1;  
   for (i = 0; i < faceRing.length; i++) {  
    var piece = clockFace.appendChild(document.createElement("span"));  
    piece.setAttribute("style", fixedStyle2);  
    piece.style.cssText = fixedStyle2;  
    piece.appendChild(document.createTextNode(faceRing[i]));  
    faceElements[i] = piece.style;  
   }  
   var clockHours = clock.appendChild(document.createElement("div"));  
   clockHours.className = "clock-hours";  
   clockHours.setAttribute("style", fixedStyle1);  
   clockHours.style.cssText = fixedStyle1;  
   for (i = 0; i < hoursHand.length; i++) {  
    var piece = clockHours.appendChild(document.createElement("span"));  
    piece.setAttribute("style", fixedStyle3);  
    piece.style.cssText = fixedStyle3;  
    piece.appendChild(document.createTextNode(hoursHand[i]));  
    hourElements[i] = piece.style;  
   }  
   var clockMinutes = clock.appendChild(document.createElement("div"));  
   clockMinutes.className = "clock-minutes";  
   clockMinutes.setAttribute("style", fixedStyle1);  
   clockMinutes.style.cssText = fixedStyle1;  
   for (i = 0; i < minutesHand.length; i++) {  
    var piece = clockMinutes.appendChild(document.createElement("span"));  
    piece.setAttribute("style", fixedStyle3);  
    piece.style.cssText = fixedStyle3;  
    piece.appendChild(document.createTextNode(minutesHand[i]));  
    minuteElements[i] = piece.style;  
   }  
   var clockSeconds = clock.appendChild(document.createElement("div"));  
   clockSeconds.className = "clock-seconds";  
   clockSeconds.setAttribute("style", fixedStyle1);  
   clockSeconds.style.cssText = fixedStyle1;  
   for (i = 0; i < secondsHand.length; i++) {  
    var piece = clockSeconds.appendChild(document.createElement("span"));  
    piece.setAttribute("style", fixedStyle3);  
    piece.style.cssText = fixedStyle3;  
    piece.appendChild(document.createTextNode(secondsHand[i]));  
    secondElements[i] = piece.style;  
   }  
   document.body.appendChild(clock);  
  }  
 }  
 drawClock();  
 function followMouse(evt) {  
  evt = evt || window.event;  
  //ymouse = (ns)?evnt.pageY+ClockFromMouseY-(window.pageYOffset):event.y+ClockFromMouseY;  
  //xmouse = (ns)?evnt.pageX+ClockFromMouseX:event.x+ClockFromMouseX;  
  if (evt.pageY) {  
   ymouse = evt.pageY;  
  } else {  
   ymouse = evt.clientY;  
   if (window.document.documentElement.scrollTop) {  
    ymouse += window.document.documentElement.scrollTop;  
   } else if (window.document.body.scrollTop) {  
    ymouse += window.document.bosy.scrollTop;  
   }  
  }  
  if (evt.pageX) {  
   xmouse = evt.pageX;  
  } else {  
   xmouse = evt.clientX;  
   //if (window.document.documentElement.scrollLeft) {  
   // xmouse += window.document.documentElement.scrollLeft;  
   //} else if (window.document.body.scrollLeft) {  
   // xmouse += window.document.body.scrollLeft;  
   //}  
  }  
  ymouse += ClockFromMouseY;  
  xmouse += ClockFromMouseX;  
 }  
 function ClockAndAssign() {  
  var time = new Date();  
  var seconds = -1.57 + Math.PI * time.getSeconds() / 30;  
  var minutes = -1.57 + Math.PI * time.getMinutes() / 30;  
  var hours = -1.575 + Math.PI * time.getHours() / 6  
        + Math.PI * parseInt(time.getMinutes()) / 360;  
  var hpos, vpos;  
  for (i = 0; i < dateElements.length; i++) {  
   vpos = Dy[i] + ClockHeight * 1.5 * Math.sin(currStep + i * Dsplit * Math.PI / 180) + scrll;  
   hpos = Dx[i] + ClockWidth * 1.5 * Math.cos(currStep + i * Dsplit * Math.PI / 180);  
   dateElements[i].top = "" + vpos + (ns4 ? "" : "px");  
   dateElements[i].left = "" + hpos + (ns4 ? "" : "px");  
  }  
  for (i = 0; i < faceElements.length; i++) {  
   vpos = y[i] + ClockHeight * Math.sin(-1.0471 + i * Split * Math.PI / 180) + scrll;  
   hpos = x[i] + ClockWidth * Math.cos(-1.0471 + i * Split * Math.PI / 180);  
   faceElements[i].top = "" + vpos + (ns4 ? "" : "px");  
   faceElements[i].left = "" + hpos + (ns4 ? "" : "px");  
  }  
  for (i = 0; i < hourElements.length; i++) {  
   vpos = y[i] + HandY + (i * HandHeight) * Math.sin(hours) + scrll;  
   hpos = x[i] + HandX + (i * HandWidth) * Math.cos(hours);  
   hourElements[i].top = "" + vpos + (ns4 ? "" : "px");  
   hourElements[i].left = "" + hpos + (ns4 ? "" : "px");  
  }  
  for (i = 0; i < minuteElements.length; i++) {  
   vpos = y[i] + HandY + (i * HandHeight) * Math.sin(minutes) + scrll;  
   hpos = x[i] + HandX + (i * HandWidth) * Math.cos(minutes);  
   minuteElements[i].top = "" + vpos + (ns4 ? "" : "px");  
   minuteElements[i].left = "" + hpos + (ns4 ? "" : "px");  
  }  
  for (i = 0; i < secondElements.length; i++) {  
   vpos = y[i] + HandY + (i * HandHeight) * Math.sin(seconds) + scrll;  
   hpos = x[i] + HandX + (i * HandWidth) * Math.cos(seconds);  
   secondElements[i].top = "" + vpos + (ns4 ? "" : "px");  
   secondElements[i].left = "" + hpos + (ns4 ? "" : "px");  
  }  
  currStep -= step;  
 }  
 function Delay() {  
  Dy[0] = Math.round(DY[0] += ((ymouse) - DY[0]) * speed);  
  Dx[0] = Math.round(DX[0] += ((xmouse) - DX[0]) * speed);  
  for (i = 1; i < Dx.length; i++) {  
   Dy[i] = Math.round(DY[i] += (Dy[i - 1] - DY[i]) * speed);  
   Dx[i] = Math.round(DX[i] += (Dx[i - 1] - DX[i]) * speed);  
  }  
  y[0] = Math.round(Y[0] += ((ymouse) - Y[0]) * speed);  
  x[0] = Math.round(X[0] += ((xmouse) - X[0]) * speed);  
  for (i = 1; i < x.length; i++) {  
   y[i] = Math.round(Y[i] += (y[i - 1] - Y[i]) * speed);  
   x[i] = Math.round(X[i] += (x[i - 1] - X[i]) * speed);  
  }  
  ClockAndAssign();  
  setTimeout("Delay()", 30);  
 }  
 if (document.addEventListener) {  
  document.addEventListener("mousemove", followMouse, true);  
 } else if (document.attachEvent) {  
  document.attachEvent("onmousemove", followMouse);  
 } else if (ns4) {  
  window.captureEvents(Event.MOUSEMOVE);  
  window.onMouseMove = followMouse;  
 }  
 Delay();  
 </script>  
 <!-- End Following Cursor -->  


*** အခက္ခဲ အဆင္မေျပတာမ်ားရွိရင္ Comment မွ တဆင့္ ေမးျမန္းႏိုင္ပါတယ္။ ***