โพสต์ที่ถูก Like ล่าสุด

โดย mindphp
18/08/2017 3:23 am
บอร์ด: PHP News
หัวข้อ: Joomla ออกเวอร์ชั่น 3.7.5 Fix Bug ติดตั้ง Joomla ไม่ได้เมือใช้ remote ฐานข้อมูล
ตอบกลับ: 1
แสดง: 14

Joomla ออกเวอร์ชั่น 3.7.5 Fix Bug ติดตั้ง Joomla ไม่ได้เมือใช้ remote ฐานข้อมูล

Joomla ออกเวอร์ชั่น 3.7.5 Fix Bug ติดตั้ง Joomla ไม่ได้เมือใช้ remote ฐานข้อมูล
https://www.joomla.org/images/release-images/joomla-375.jpg
- แก้ปัญหาติดตั้ง Joomla ไม่ได้ ถ้าใช้ฐานข้อมูลที่ไม่ใข่ localhost

ข้อมูลเพิ่มเติม
https://www.joomla.org/announcements/re ... lease.html

เวอร์ชั่น 3.8 ตอนนี้ ก็มี beta 2 แล้ว
โดย meeieis
17/08/2017 4:01 pm
บอร์ด: Graphic design
หัวข้อ: คู่มือการใช้งานโปรแกรม OpenShot Video Editor โปรแกรมตัดต่อ VDO เบื้องต้น
ตอบกลับ: 0
แสดง: 21

คู่มือการใช้งานโปรแกรม OpenShot Video Editor โปรแกรมตัดต่อ VDO เบื้องต้น

รูปภาพ
สามารถเข้าไปดาวน์โหลดโปรแกรม OpenShot Video Editor มาใช้งานได้ที่ http://openshot.org/

OpenShot Video Editor (โอเพนช็อต วิดีโอ อีดิทเตอร์) เป็นโปรแกรมตัดต่อวิดีโอที่สามารถดาวน์โหลดมาใช้งานได้ฟรีหรือที่เรียกว่าเป็นโปรแกรมในรูปแบบของ OpenSoุurce (โอเพนซอร์ส) ซึ่งผู้พัฒนาโปรแกรมสามารถนำไปพัฒนาต่อได้ ทำให้โปรแกรมมีการอัพเดตและถูกพัฒนาให้ดีขึ้นอย่างต่อเนื่อง OpenShot Video Editor เป็นโปรแกรมที่ตัดต่อวิดีโอได้อย่างสะดวกรวดเร็ว สามารถ Preview (พรีวิว) วิดีโอ เพื่อดูผลลัพธ์จากการแก้ไขวิดีโอได้แบบเรียลไทม์และยังมีข้อดีต่างๆ เช่น

1. มีเอฟเฟกต์วิดีโอแบบสำเร็จรูปมากกว่า 20 รูปแบบให้เลือกใช้งาน
2. รองรับการใช้งานร่วมกับไฟล์มัลติมีเดียหลายรูปแบบ
3. รองรับไฟล์วีดีโอ ไฟล์เสียง ไฟล์รูปภาพ
4. สามารถสร้าง ตัวอักษร ข้อความ แบบ 3 มิติได้
5. มีฟังก์ชั่นสำหรับตั้งค่าความเร็ว และความช้าในการเล่นของไฟล์วีดีโอ
6. สามารถแก้ไข ปรับแต่งไฟล์เสียง และมิกซ์เสียงได้
7. มีระบบการใช้งานที่ง่าย ด้วยรูปแบบการลากและวาง
8. มีเครื่องมือสำหรับตัดต่อ ปรับขนาด และปรับมุมองศาภาพวีดีโอได้อย่างละเอียด
9.รองรับการใช้งานร่วมกับปุ่มคีย์ลัดได้อย่างสะดวกรวดเร็ว
10. รองรับการใช้งานกับไฟล์วีดีโอคุณภาพสูงได้อย่างมีประสิทธิภาพ

การใช้งานโปรแกรม
เมื่อเปิดโปรแกรม OpenShot Video Editor ขึ้นมา จะมีหน้าจอโปรแกรมขึ้นมาดังภาพ

รูปภาพ

1. Main Toolbar แถบเครื่องมือหลักประกอบด้วย
- Open Project คำสั่งเปิดไฟล์ที่ได้ตัดต่อไว้โดยโปรแกรมมีนามสกุลเป็นไฟล์ (*.OSP)
- Save Project คำสั่ง บันทึกไฟล์
- Undo คำสั่งย้อนกลับการทำงาน
- Redo คำสั่ง ทำซ้ำ
- Import Files คำสั่งนำเข้าไฟล์ต่าง ๆ เช่น ภาพ วิดีโอ เสียง
- Export Video คำสั่ง Export ไฟล์เพื่อนำไปใช้งาน

2.Preview Window คือหน้าต่างแสดงตัวอย่างและปุ่มควบคุมการเล่น ของวิดีโอ

3.Function Tabs ประกอบด้วย
- Project Files ในหน้าต่าง Project Files มีคลิปทั้งหมดที่ Import เข้ามา แล้วสามารถดึงเข้ามาวางที่ไทม์ไลน์เพื่อตัดต่อได้
- Transitions คือลักษณะของการแปลงภาพจาก Clip A ไปเป็น Clip B
- Effects คลิปเอฟเฟกต์ใช้ทำให้คลิปนั้นๆมีลูกเล่นแตกต่างกันไปตามที่เราเลือก

4.Edit Toolbar แถบเครื่องมือแก้ไขคลิปวิดีโอบน Timeline

5.Timeline เป็บแถบระยะเวลาการแสดงภาพ และเป็นส่วนที่จะใช้ในการตัดต่อ ใส่คลิปต่างๆลงไป แทรกลูกเล่นหรือเอฟเฟกต์ต่างๆ ซึ่ง Timeline ก็เป็นส่วนที่สำคัญในงานตัดต่อวีดีโอ ที่ Timeline จะมี Play-head ในการแสดงภาพ VDO ใน โปรแกรม จะแสดงภาพในแต่ละเฟรมอย่างรวดเร็วโดย Play-head จะชี้เฟรมที่กำลังแสดงอยู่บนหน้าต่าง Preview เราสามารถคลิกเลื่อน Play-head เพื่อดูเฟรมที่ต้องการแก้ไขได้เอง Track list คือ จะเป็นส่วนที่แสดงแทร็กทั้งหมดที่เรานำเข้ามาใช้ในงานวีดีโอ โดยจะช่วยในการกำหนดค่าต่างๆให้กับ แทร็กนั้นๆ เช่น ความสว่างของคลิปวีดีโอ ระดับความดังของเสียง เป็นต้น ซึ่งเมื่อเรากำหนดค่าที่ Track list ก็จะส่งผลต่อคลิปทั้งหมดที่อยุ่บนแทร็กนั้น โดย Track list จะแบ่งออกเป็น 2 ชนิดคือ แทร็กของภาพวีดีโอและแทร็กของเสียง โดยการสร้างงานวีดีโอเราสามารถสร้างแทร็ก
ออกมาได้ไม่จำกัด

รูปภาพ

เริ่มต้นการตัดต่อวิดีโอด้วย OpenShot
ก่อนเริ่มต้นการตัดต่อ เราจะต้อง สร้างโฟล์เดอร์ที่ใส่คลิปวิดีโอ คลิปเสียง และภาพนิ่งต่าง ๆ ที่ใช้ประกอบวิดีโอ จากนั้นเลือกเมนู File เลือก Import Files… หรือใช้คีย์ลัด Ctrl+F

รูปภาพ
รูปภาพ


รูปภาพ

ในการตัดต่อคลิป บางส่วนที่เราไม่ต้องการในคลิปเราตัดทิ้งได้ โดยเมื่อลากไฟล์วิดีโอมาวางที่ทามไลน์แล้ว ให้เลื่อน Play-head ไปวางตรงจุดที่ต้องการตัด จากนั้นคลิกขวาเลือก Slice All Clips

เมื่อเราทำการตัดต่อทั้งหมดในโปรเจ็คเรียบร้อยแล้ว จะต้อง Export เพื่อให้ได้ไฟล์ที่สมบูรณ์พร้อมใช้งาน โดยเลือกเมนู File Export Video

รูปภาพ

เมื่อกดปุ่ม Export แล้วให้รอจนโปรแกรม Render เสร็จ เราก็จะได้ไฟล์วีดีโอ ที่พร้อมใช้่งาน สามารถ Export ไฟล์เป็นรูปแบบนามสกุลที่หลากหลาย
โดย บัวบุญ จันทะโคตร
17/08/2017 3:07 pm
บอร์ด: Python Knowledge
หัวข้อ: รู้จักคำสั่ง page_source ใน selenium webdriver
ตอบกลับ: 0
แสดง: 12

รู้จักคำสั่ง page_source ใน selenium webdriver

คำสั่งที่ใช้งานใน selenium webdriver มีอยู่มากมายหลายคำสั่ง วันนี้เราจะมาทำความรู้คำสั่งที่มีชื่อว่า page_source ซึ่งเป็นคำสั่งหนึ่งใน selenium webdriver โดยการทำงานของมันนั้นจะแสดง source โค้ดของหน้าเว็บไซต์ออกมาทั้งหมด

โดยมีส่วนของโค้ด selenium webdriver ดังนี้

Code: เลือกทั้งหมด

from selenium import webdriver

driver = webdriver.Chrome('/usr/local/lib/python2.7/site-packages/chromedriver')
driver.get('https://www.kapook.com/')
doc = driver.page_source
print doc


และนี่ก็คือผลการแสดงข้อมูลที่ได้จากการ print ค่า doc ออกมา

Code: เลือกทั้งหมด

<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="th"><head><meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image"><link href="/images/branding/product/ico/googleg_lodp.ico" rel="shortcut icon"><meta content="origin" id="mref" name="referrer"><title>Google</title>   <script>(function(){window.google={kEI:'FEaVWcPbDIr28QXM_JCIDQ',kEXPI:'1353383,1354277,1354297,1354401,1354514,1354625,1354663,1354749,1355077,3700331,3700347,3700442,4029815,4031109,4038214,4038394,4041776,4043492,4045096,4045293,4045841,4047140,4047454,4048347,4048980,4050750,4051887,4056126,4056682,4058016,4061666,4061980,4062724,4064468,4064727,4064796,4069829,4072270,4072776,4076607,4076999,4078430,4078588,4080760,4081039,4081165,4082230,4093313,4093524,4094544,4095910,4097153,4097469,4097922,4097929,4098721,4098728,4098752,4102238,4103475,4103861,4104202,4104258,4106647,4107160,4107555,4108458,4109293,4109316,4109489,4110086,4110259,4110403,4110656,4110931,4111276,4112010,4112286,4113148,4113217,4113275,4116349,4116724,4116731,4116926,4116935,4117980,4118103,4118226,4118228,4118438,4118531,4118626,4118641,4118798,4119118,4119239,4119272,4120413,4120508,4120911,4121035,4121278,4122028,4122262,4122699,4123477,4123646,4123944,4123984,4124220,4124341,4124544,4124943,4124944,4124948,4125162,4125372,4125478,4125878,4125880,4125882,4126002,4126221,4126366,4126419,4126522,4126634,4127450,10200083,16200026,19003303,19003304,19003305,19003345,19003352',authuser:0,kscs:'c9c918f0_41',u:'c9c918f0'};google.kHL='th';})();(function(){google.lc=[];google.li=0;google.getEI=function(a){for(var b;a&&(!a.getAttribute||!(b=a.getAttribute("eid")));)a=a.parentNode;return b||google.kEI};google.getLEI=function(a){for(var b=null;a&&(!a.getAttribute||!(b=a.getAttribute("leid")));)a=a.parentNode;return b};google.https=function(){return"https:"==window.location.protocol};google.ml=function(){return null};google.wl=function(a,b){try{google.ml(Error(a),!1,b)}catch(c){}};google.time=function(){return(new Date).getTime()};google.log=function(a,b,c,d,g){if(a=google.logUrl(a,b,c,d,g)){b=new Image;var e=google.lc,f=google.li;e[f]=b;b.onerror=b.onload=b.onabort=function(){delete e[f]};google.vel&&google.vel.lu&&google.vel.lu(a);b.src=a;google.li=f+1}};google.logUrl=function(a,b,c,d,g){var e="",f=google.ls||"";c||-1!=b.search("&ei=")||(e="&ei="+google.getEI(d),-1==b.search("&lei=")&&(d=google.getLEI(d))&&(e+="&lei="+d));d="";!c&&google.cached&&-1==b.search("&cached=")&&(d="&cached="+google.cached);a=c||"/"+(g||"gen_204")+"?atyp=i&ct="+a+"&cad="+b+e+f+"&zx="+google.time()+d;/^http:/i.test(a)&&google.https()&&(google.ml(Error("a"),!1,{src:a,glmm:1}),a="");return a};google.y={};google.x=function(a,b){if(a)var c=a.id;else{do c=Math.random();while(google.y[c])}google.y[c]=[a,b];return!1};google.lq=[];google.load=function(a,b,c){google.lq.push([[a],b,c])};google.loadAll=function(a,b){google.lq.push([a,b])};}).call(this);google.f={};(function(){google.hs={h:true,pa:true,q:true};})();(function(){google.c={c:{a:true,d:false,e:false,i:false,m:true,n:false}};google.sn='webhp';(function(){var e={gen204:"iml",clearcut:8};var f=function(a,b,c){a.addEventListener?a.removeEventListener(b,c,!1):a.attachEvent&&a.detachEvent("on"+b,c)},h=function(a,b,c){g.push({o:a,s:b,v:c});a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent&&a.attachEvent("on"+b,c)},g=[];google.timers={};google.startTick=function(a,b){var c=b&&google.timers[b].t?google.timers[b].t.start:google.time();google.timers[a]={t:{start:c},e:{},m:{}};(c=window.performance)&&c.now&&(google.timers[a].wsrt=Math.floor(c.now()))};google.tick=function(a,b,c){google.timers[a]||google.startTick(a);c=void 0!==c?c:google.time();b instanceof Array||(b=[b]);for(var d=0;d<b.length;++d)google.timers[a].t[b[d].clearcut]={key:b[d],ts:c}};google.c.e=function(a,b,c){google.timers[a].e[b]=c};google.c.b=function(a){var b=google.timers.load.m;b[a]&&google.wl("ch_mab",{m:a});b[a]=!0};google.c.u=function(a){var b=google.timers.load.m;if(b[a]){b[a]=!1;for(a in b)if(b[a])return;google.csiReport()}else google.wl("ch_mnb",{m:a})};google.rll=function(a,b,c){var d=function(b){c(b);f(a,"load",d);f(a,"error",d)};h(a,"load",d);b&&h(a,"error",d)};google.ull=function(){for(var a;a=g.shift();)f(a.o,a.s,a.v)};google.iTick=function(a){var b=google.time();google.tick("load",e,b);a=a.id||a.src||a.name;google.timers.iml||google.startTick("iml");google.timers.iml.t[a]=b;google.c.c.a&&(f.getAttribute("role")||f.type||f.tagName).toUpperCase(),h;(h="keydown"!=b.type)||("getAttribute"in f?(h=(f.getAttribute("role")||f.tagName).toUpperCase(),h=!H(f)&&("COMBOBOX"!=h||"INPUT"!=h)&&!f.isContentEditable):h=!1,h=!h);(h=h||b.ctrlKey||b.shiftKey||b.altKey||b.metaKey||G(f)&&32==e)||((h=f.tagName in E)||(h=f.getAttributeNode("tabindex"),h=null!=h&&h.specified),h=!(h&&!f.disabled));h?e=!1:(f="INPUT"!=f.tagName.toUpperCase()||f.type,h=!(q in F)&&13==e,e=(0==F[q]%e||h)&&!!f)}e&&(c="clickkey")}q=b.srcElement||b.target;e=R(c,b,q,"",null);b.path?(M.w=b.path,M.o=0,M.v=this,M.H=!1,f=M):f=K(q,this);for(;h=f.s();){var m=h;var g=m;h=c;var p=g.__jsaction;if(!p){var u=null;"getAttribute"in g&&(u=g.getAttribute("jsaction"));if(u){p=t[u];if(!p){p={};for(var x=u.split(fa),y=0,ha=x?x.length:0;y<ha;y++){var r=x[y];if(r){var z=r.indexOf(":"),N=-1!=z;var ia=N?Q(r.substr(0,z)):"click";r=N?Q(r.substr(z+
</style>
}catch(e){_._DumpException(e)}
/* _Module_:in */
try{
_.y("gbar.elr",function(){return{es:{f:152,h:60,m:30},mo:"md",vh:window.innerHeight||0,vw:window.innerWidth||0}});
}catch(e){_._DumpException(e)}
/* _GlobalSuffix_ */
})(this.gbar_);
// Google Inc.
</script>
this.je,!1,this),d.o=[];this.A.ga();_.sh(this.K);delete this.b;delete this.K;delete this.A;delete this.S;delete this.F};
_.k.We=function(a){var c=_.Oh(_.wh(this.K).b);var d=new _.Jh(a.clientX+c.b,a.clientY+c.U);c=d.b;var e=d.U,f=this.F;this.dispatchEvent(new _.ym("drag",0,this.b,0,f?f.o:void 0,0,a.clientX,a.clientY));var g;if(f){this.D&&f.w&&(g=this.D(f.o,f.b,c,e));if(f.b.contains(d)&&g==this.ba)return;f.w&&(this.dispatchEvent(new _.ym("dragout",0,this.b,0,f.o)),f.w.dispatchEvent(new _.ym("dragout",0,this.b,0,f.o,0,void 0,void 0,0,0,this.ba)));this.ba=g;this.F=null}if(this.C.contains(d)){a:{for(var h=0;f=this.S[h];h++)if(f.b.contains(d))if(f.A){if(f.A.w.contains(d)){d=
f;break a}}else{d=f;break a}d=null}if((f=this.F=d)&&f.w)this.D&&(g=this.D(f.o,f.b,c,e)),c=new _.ym("dragover",0,this.b,0,f.o),c.w=g,this.dispatchEvent(c),f.w.dispatchEvent(new _.ym("dragover",0,this.b,0,f.o,0,a.clientX,a.clientY,0,0,g));else if(!f){this.o||(this.o=new _.zm(this.C.clone()));a=this.o.b;a.top=this.C.top;a.right=this.C.right;a.bottom=this.C.bottom;a.left=this.C.left;for(g=0;f=this.S[g];g++)d=f.b,f.A&&(f=f.A.w,d=new _.ji(Math.max(d.top,f.top),Math.min(d.right,f.right),Math.min(d.bottom,
f.bottom),Math.max(d.left,f.left))),f=null,c>=d.right?f=d.right>a.left?d.right:a.left:c<d.left&&(f=d.left<a.right?d.left:a.right),h=null,e>=d.bottom?h=d.bottom>a.top?d.bottom:a.top:e<d.top&&(h=d.top<a.bottom?d.top:a.bottom),null===f||null===h||(Math.abs(f-c)>Math.abs(h-e)?h=null:f=null),null!==f?f<=c?a.left=f:a.right=f:null!==h&&(h<=e?a.top=h:a.bottom=h);this.F=10<=(a.right-a.left)*(a.bottom-a.top)?this.o:null}}};_.k.kf=function(){return!1};
_.k.je=function(a){for(var c=0,d;d=this.N[c];c++)if(a.target==d.b){var e=d.B-d.b.scrollTop,f=d.A-d.b.scrollLeft;d.B=d.b.scrollTop;d.A=d.b.scrollLeft;this.o&&this.F==this.o&&(0<e?this.o.b.top+=e:this.o.b.bottom+=e,0<f?this.o.b.left+=f:this.o.b.right+=f);for(var g=0,h;h=d.o[g];g++)h=h.b,h.top+=e,h.left+=f,h.bottom+=e,h.right+=f,_.Am(this,h)}this.A.ze(a)};
_.Am=function(a,c){1==a.S.length?a.C=new _.ji(c.top,c.right,c.bottom,c.left):(a=a.C,a.left=Math.min(c.left,a.left),a.right=Math.max(c.right,a.right),a.top=Math.min(c.top,a.top),a.bottom=Math.max(c.bottom,a.bottom))};_.xm.prototype.P=function(){_.xm.J.P.call(this);for(var a,c=0;a=this.B[c];c++)this.pd(a);this.B.length=0};_.ym=function(a,c,d,e,f,g,h,l,q,r,x){_.id.call(this,a);this.B=d;this.C=f;this.clientX=h;this.clientY=l;this.w=x};_.z(_.ym,_.id); _.zm=function(a,c,d,e){this.b=a;this.w=c;this.o=d;this.B=e||null;this.A=null};
var Bm=function(){_.xm.call(this)};_.z(Bm,_.xm);_.Cm=function(a,c){_.xm.call(this);this.T=!1;this.w=[];this.Y=_.I(c,1,!1);this.ea=_.H(c,2)||"";this.Oa=_.H(c,3)||"";this.ka=this.Y&&this.ea?new tm:null;this.H=null;this.G=a;this.M={};this.aa=null};_.z(_.Cm,Bm);_.k=_.Cm.prototype;_.k.ph=_.yh.V();_.k.kd=function(a){_.Cm.J.kd.call(this,a);this.w.push(a);this.T=!0};_.k.init=function(){_.Cm.J.init.call(this);this.Y&&this.T&&_.P(this.G,"keydown",this.Xe,!1,this)};_.k.P=function(){this.Y&&this.T&&_.Ed(this.G,"keydown",this.Xe,!1,this);_.Cm.J.P.call(this)};
_.k.Sc=function(a){_.Cm.J.Sc.call(this,a);var c=a.b;c=c.id||(c.id="ogbkddg"+_.zh(this.ph));this.M[c]=a};_.k.pd=function(a){delete this.M[a.b.id];_.Cm.J.pd.call(this,a)};
_.k.Xe=function(a){a:{var c=a.target;if(this.M)for(var d=this.G;c&&c!==d;){var e=c.id;if(e in this.M){c=this.M[e];break a}c=c.parentNode}c=null}c&&(32==a.keyCode?(this.H?this.O(0,c):(this.H=c,_.U(this.G,"gb_Hf"),_.U(c.b,"gb_6"),this.aa=_.P(window.document,"mousedown",(0,_.v)(this.O,this,a,c,!1)),_.P(this.G,_.jd,this.Ge,!1,this),this.dispatchEvent(new Dm(c)),sm(c.b)),a.preventDefault(),a.stopPropagation()):this.H&&Em(this,a,c))};_.k.Ge=function(a){var c=rm(this.H.b);a.target!=c&&this.O(0,this.H)};
var Em=function(a,c,d){var e=null,f=_.gm(d.b);_.am(f);switch(c.keyCode){case 37:e=Fm(a,d,-1);break;case 38:e=Fm(a,d,-3);break;case 39:e=Fm(a,d,1);break;case 40:e=Fm(a,d,3);break;case 9:a.O(0,d);break;case 27:a.O(0,d,!0)}if(e){a.dispatchEvent(new _.ym("dragout",0,d));f=e.target.B[0];var g=new _.ym("dragover",0,null);g.C=f;g.w=e.b;a.dispatchEvent(g);sm(d.b);if(a.ka){d=1==a.w.indexOf(e.target)?a.Oa:a.ea;var h=[e.b+1,f?f.b.children.length:0];d=d.replace(/%([0-9]+)\$s/g,function(a,c){c=(0,window.parseInt)(c,
10)-1;return c<h.length?h[c]:""});vm(a.ka,d)}c.preventDefault()}};_.Cm.prototype.O=function(a,c,d){_.V(this.G,"gb_Hf");d?this.dispatchEvent(new _.ym("dragout",0,c)):(a=_.gm(c.b),a=Gm(this,a),(a=-1!=a?this.w[a]:null)&&a.dispatchEvent(new _.ym("drop",0,null)));this.dispatchEvent(new _.ym("dragend",0,c));_.Fd(this.aa);delete this.aa;_.Ed(this.G,_.jd,this.Ge,!1,this);this.H=null;_.V(c.b,"gb_6")};
var Fm=function(a,c,d){var e=c.b;c=_.gm(c.b);var f=Gm(a,c);_.am(_.gm(c));for(var g=_.am(c),h=(0,_.za)(g,e),l=0<d?1:-1;e&&0!=d;){do e=0<l?_.n(e.nextElementSibling)?e.nextElementSibling:_.fm(e.nextSibling,!0):_.n(e.previousElementSibling)?e.previousElementSibling:_.fm(e.previousSibling,!1);while(e&&!(e.id in a.M));d-=l;h+=l;if(!e&&f<a.w.length&&(f+=l,a.w[f]))if(c=a.w[f].B[0].b,g=_.am(c),0<l)e=(3-h%3)%3,d=d<e?0:d-e,h=0,e=c.children[0];else{h=g.length;e=3-h%3-1;if(d=e>-d?0:d+e)h--,d++;e=c.children[h]}}return 0== d&&a.w[f]?new Hm(a.w[f],h):null},Gm=function(a,c){for(var d=-1,e=0;e<a.w.length;e++)if(a.w[e].B[0].b==c){d=e;break}return d},Hm=function(a,c){this.target=a;this.b=c},Dm=function(a){_.ym.call(this,"dragstart",0,a)};_.z(Dm,_.ym);
_.Im=new _.Kh(88,100);_.Jm=function(a){_.G(this,a,"gaia.l.a",-1,null)};_.z(_.Jm,_.F);_.dm("gaia.l.a",_.Jm);_.Lm=function(a){_.G(this,a,"gaia.l.a.r",-1,Km)};_.z(_.Lm,_.F);var Km=[1];_.dm("gaia.l.a.r",_.Lm);(function(){for(var a=["ms","moz","webkit","o"],c=0,d;d=a[c]&&!_.m.requestAnimationFrame;++c)_.m.requestAnimationFrame=_.m[d+"RequestAnimationFrame"],_.m.cancelAnimationFrame=_.m[d+"CancelAnimationFrame"]||_.m[d+"CancelRequestAnimationFrame"];if(!_.m.requestAnimationFrame){var e=0;_.m.requestAnimationFrame=function(a){var c=(new Date).getTime(),d=Math.max(0,16-(c-e));e=c+d;return _.m.setTimeout(function(){a(c+d)},d)};_.m.cancelAnimationFrame||(_.m.cancelAnimationFrame=function(a){(0,window.clearTimeout)(a)})}})();
var Mm=function(a){a||_.wh();_.re.call(this)};_.z(Mm,_.re);Mm.prototype.clear=function(){_.re.prototype.clear.call(this)};Mm.prototype.set=function(a,c){_.re.prototype.set.call(this,a,c);return this};var Nm=function(a,c,d,e){return a.set(c.key,c.caption,d,e)};Mm.prototype.Bb=function(){};Mm.prototype.R=function(){return null};var Om={key:"ok",caption:"OK"},Pm={key:"cancel",caption:"Cancel"},Qm={key:"yes",caption:"Yes"},Rm={key:"no",caption:"No"},Sm={key:"save",caption:"Save"},Tm={key:"continue",caption:"Continue"}; "undefined"!=typeof window.document&&(Nm(new Mm,Om,!0,!0),Nm(Nm(new Mm,Om,!0),Pm,!1,!0),Nm(Nm(new Mm,Qm,!0),Rm,!1,!0),Nm(Nm(Nm(new Mm,Qm),Rm,!0),Pm,!1,!0),Nm(Nm(Nm(new Mm,Tm),Sm),Pm,!0,!0));
_.hl(_.mh(_.fc("//www-onepick-opensocial.googleusercontent.com/gadgets/js/rpc.js?c=1&container=onepick")));_.hl(_.mh(_.fc("//apis.google.com/js/rpc.js")));
}catch(e){_._DumpException(e)}
/* _Module_:syd */
try{
var Wm;_.Um=function(a){_.G(this,a,0,-1,null)};_.z(_.Um,_.F);var Vm=function(a){_.G(this,a,0,-1,null)};_.z(Vm,_.F);Wm=[3,5];_.Xm=function(a){_.G(this,a,0,-1,Wm)};_.z(_.Xm,_.F);var Ym=function(a,c){return null!==a&&c in a},Zm=function(a,c){a.src=_.ph(c)},$m=function(a){var c=arguments,d=c.length;return function(){for(var a=0;a<d;a++)if(c[a].apply(this,arguments))return!0;return!1}},an=function(a){return function(){return!a.apply(this,arguments)}};
var bn=function(){};var cn=function(a,c,d){this.o=a;this.w=c;this.b=d||_.m};var dn=function(){this.b=[]};dn.prototype.o=function(a,c,d){this.B(a,c,d);this.b.push(new cn(a,c,d))};dn.prototype.B=function(a,c,d){d=d||_.m;for(var e=0,f=this.b.length;e<f;e++){var g=this.b[e];if(g.o==a&&g.w==c&&g.b==d){this.b.splice(e,1);break}}};dn.prototype.w=function(a){for(var c=0,d=this.b.length;c<d;c++){var e=this.b[c];"catc"==e.o&&e.w.call(e.b,a)}};
_.en=function(a,c,d,e,f){_.A.call(this);this.A=c;this.X=e;this.D=f;this.K=!1;this.w={};this.o={};this.T=[];this.B=[];this.H=_.H(a,1)?"http":"https";this.S=[this.H+"://"+_.L(_.H(a,2)),"og/_/js","k="+_.L(_.H(a,3)),"rt=j"];this.G=""==_.L(_.H(a,14))?null:_.H(a,14);this.M=[this.H+"://"+_.L(_.H(a,2)),"og/_/ss","k="+_.L(_.H(a,13))];this.F=""==_.L(_.H(a,15))?null:_.H(a,15);this.O=_.K(_.H(a,1))?"?host=www.gstatic.com&bust="+_.L(_.H(a,16)):"";this.N=_.K(_.H(a,1))?"?host=www.gstatic.com&bust="+1E11*Math.random():
"";this.b=_.M(_.I(a,17,1),1);a=0;for(c=d[a];a<d.length;a++,c=d[a])this.w[c]=!0,this.o[c]=!0};_.z(_.en,_.A);_.Ja(_.en,"m");_.gn=function(a,c,d){c=(0,_.Ba)(c,an($m(_.Cc,_.vc(Ym,a.w))));if(0<c.length){var e=a.S.join("/")+"/"+("m="+c.join(","))+"/exm="+_.Vc(a.w).join(",")+"/d=1/ed=1";a.G&&(e+="/rs="+a.G);e+=a.O;fn(a,e,(0,_.v)(a.Z,a,d));a.T.push(e);for(d=0;d<c.length;d++)a.w[c[d]]=!0}};_.en.prototype.Z=function(a){for(var c=0;c<this.B.length;c++)this.B[c].call(null);a&&a.call(null)};
var fn=function(a,c,d,e){var f=window.document.createElement("SCRIPT");f.async=!0;f.type="text/javascript";f.charset="UTF-8";Zm(f,_.hl(c));var g=!0,h=e||1;e=(0,_.v)(function(){g=!1;this.D.log(47,{att:h,max:this.b,url:c});h<this.b?fn(this,c,d,h+1):this.X.log(Error("Y`"+h+"`"+this.b),{url:c})},a);var l=(0,_.v)(function(){g&&(this.D.log(46,{att:h,max:this.b,url:c}),g=!1,d&&d.call(null))},a),q=function(a){"loaded"==a.readyState||"complete"==a.readyState?l():g&&window.setTimeout(function(){q(a)},100)};
"undefined"!==typeof f.addEventListener?f.onload=function(){l()}:f.onreadystatechange=function(){f.onreadystatechange=null;q(f)};f.onerror=e;a.D.log(45,{att:h,max:a.b,url:c});_.em("HEAD")[0].appendChild(f)};_.en.prototype.Vc=function(a,c){a=(0,_.Ba)(a,an($m(_.Cc,_.vc(Ym,this.o))));if(0<a.length){var d=this.M.join("/")+"/"+("m="+a.join(","))+"/excm="+_.Vc(this.o).join(",")+"/d=1/ed=1";this.F&&(d+="/rs="+this.F);hn(d+this.N,c);for(c=0;c<a.length;c++)this.o[a[c]]=!0}};
var hn=function(a,c){var d=window.document.createElement("LINK");d.setAttribute("rel","stylesheet");d.setAttribute("type","text/css");d.setAttribute("href",a);d.onload=d.onreadystatechange=function(){d.readyState&&"loaded"!=d.readyState&&"complete"!=d.readyState||c&&c.call(null)};_.em("HEAD")[0].appendChild(d)};
_.en.prototype.C=function(a,c){if(!this.K)if(void 0!=c)window.setTimeout((0,_.v)(this.C,this,a,void 0),c);else{_.gn(this,_.eg(this.A,1),a);a=_.eg(this.A,2);if(_.H(this.A,3)){var d=(0,_.v)(this.Vc,this,a);a=function(){d()};"undefined"!==typeof window.addEventListener?window.addEventListener("load",a):window.attachEvent("onload",a)}else this.Vc(a);this.K=!0}};
var jn=function(a,c){var d={};d._sn=["v.gas",c].join(".");_.Wb(a,d)};var kn=["gbq1","gbq2","gbqfbwa"],ln=function(a){var c=window.document.getElementById("gbqld");c&&(c.style.display=a?"none":"block",c=window.document.getElementById("gbql"))&&(c.style.display=a?"block":"none")};var nn=function(a,c,d){this.A=new dn;this.F=a;this.D=c;this.b=mn(a.offsetWidth,this.D);this.G=d||new _.nm(_.qm(),10);_.P(this.G,"b",function(){window.requestAnimationFrame?window.requestAnimationFrame((0,_.v)(this.C,this)):this.C()},!1,this)},mn=function(a,c){for(var d=0,e=c.length-1,f=c[0];d<e;){if(a<=f.max)return f.id;f=c[++d]}return c[e].id};nn.prototype.C=function(){var a=mn(this.F.offsetWidth,this.D);a!=this.b&&(this.b=a,this.w(new bn))};nn.prototype.o=function(a,c,d){this.A.o(a,c,d)}; nn.prototype.B=function(a,c){this.A.B(a,c)};nn.prototype.w=function(a){this.A.w(a)};
var on,qn,rn,sn,tn;on=null;_.pn=function(){if(null!=on)return on;var a=window.document.body.style;if(!(a="flexGrow"in a||"webkitFlexGrow"in a))a:{if(a=window.navigator.userAgent){var c=/Trident\/(\d+)/.exec(a);if(c&&7<=Number(c[1])){a=/\bMSIE (\d+)/.exec(a);a=!a||"10"==a[1];break a}}a=!1}return on=a};
qn=function(a,c,d){var e=window.NaN;window.getComputedStyle&&(a=window.getComputedStyle(a,null).getPropertyValue(c))&&"px"==a.substr(a.length-2)&&(e=d?(0,window.parseFloat)(a.substr(0,a.length-2)):(0,window.parseInt)(a.substr(0,a.length-2),10));return e};
rn=function(a){var c=a.offsetWidth,d=qn(a,"width");if(!(0,window.isNaN)(d))return c-d;var e=a.style.padding,f=a.style.paddingLeft,g=a.style.paddingRight;a.style.padding=a.style.paddingLeft=a.style.paddingRight=0;d=a.clientWidth;a.style.padding=e;a.style.paddingLeft=f;a.style.paddingRight=g;return c-d};
sn=function(a){var c=qn(a,"min-width");if(!(0,window.isNaN)(c))return c;var d=a.style.width,e=a.style.padding,f=a.style.paddingLeft,g=a.style.paddingRight;a.style.width=a.style.padding=a.style.paddingLeft=a.style.paddingRight=0;c=a.clientWidth;a.style.width=d;a.style.padding=e;a.style.paddingLeft=f;a.style.paddingRight=g;return c};tn=function(a,c){c||-.5!=a-Math.round(a)||(a-=.5);return Math.round(a)}; _.un=function(a){if(a){var c=a.style.opacity;a.style.opacity=".99";_.$a(a.offsetWidth);a.style.opacity=c}};
var vn=function(a){_.A.call(this);this.b=a;this.o=[];this.w=[]};_.z(vn,_.A);vn.prototype.P=function(){vn.J.P.call(this);this.b=null;for(var a=0;a<this.o.length;a++)this.o[a].ga();for(a=0;a<this.w.length;a++)this.w[a].ga();this.o=this.w=null};
vn.prototype.Wa=function(a){void 0==a&&(a=this.b.offsetWidth);for(var c=rn(this.b),d=[],e=0,f=0,g=0,h=0,l=0;l<this.o.length;l++){var q=this.o[l],r=wn(q),x=rn(q.b);d.push({item:q,qb:r,Hh:x,Dc:0});e+=r.Oc;f+=r.$c;g+=r.cc;h+=x}a=a-h-c-g;e=0<a?e:f;f=a;c=d;do{g=!0;h=[];for(l=q=0;l<c.length;l++){r=c[l];x=0<f?r.qb.Oc:r.qb.$c;var N=0==e?0:x/e*f+r.Dc;N=tn(N,g);g=!g;r.Dc=xn(r.item,N,r.Hh,r.qb.cc);0<x&&N==r.Dc&&(h.push(r),q+=x)}c=h;f=a-(0,_.Fa)(d,function(a,c){return a+c.Dc},0);e=q}while(0!=f&&0!=c.length);
for(l=0;l<this.w.length;l++)this.w[l].Wa()};var zn=function(a){var c={};c.items=(0,_.Da)(a.o,function(a){return yn(a)});c.children=(0,_.Da)(a.w,function(a){return zn(a)});return c},An=function(a,c){for(var d=0;d<a.o.length;d++)a.o[d].b.style.width=c.items[d];for(d=0;d<a.w.length;d++)An(a.w[d],c.children[d])};vn.prototype.R=function(){return this.b};
var Bn=function(a,c,d,e){vn.call(this,a);this.B=c;this.C=d;this.A=e};_.z(Bn,vn);
var wn=function(a,c){var d=a.B,e=a.C;if(-1==a.A){var f=c;void 0==f&&(f=rn(a.b));c=yn(a);var g=zn(a),h=qn(a.b,"width",!0);(0,window.isNaN)(h)&&(h=a.b.offsetWidth-f);f=Math.ceil(h);a.b.style.width=c;An(a,g);a=f}else a=a.A;return{Oc:d,$c:e,cc:a}},xn=function(a,c,d,e){void 0==d&&(d=rn(a.b));void 0==e&&(e=wn(a,d).cc);c=e+c;0>c&&(c=0);a.b.style.width=c+"px";d=a.b.offsetWidth-d;a.b.style.width=d+"px";return d-e},yn=function(a){var c=a.b.style.width;a.b.style.width="";return c};
var Cn=function(a,c,d){var e;void 0==e&&(e=-1);return{className:a,qb:{Oc:c||0,$c:d||0,cc:e}}},Dn={className:"gb_mf",items:[Cn("gb_Zb"),Cn("gb_Ef"),Cn("gb_if",0,2),Cn("gb_Ff"),Cn("gb_hb",1,1)],nb:[{className:"gb_hb",items:[Cn("gb_ae",0,1),Cn("gb_sc",0,1)],nb:[function(a){a=a.gb_ae;if(a)var c=a.R();else{c=window.document.querySelector(".gb_ae");if(!c)return null;a=new vn(c)}c=c.querySelectorAll(".gb_Q");for(var d=0;d<c.length;d++){if(_.ci(c[d],"gb_S")){var e=new Bn(c[d],0,1,-1);var f=c[d].querySelector(".gb_P");
f&&(f=new Bn(f,0,1,-1),e.o.push(f),a.w.push(e))}else e=new Bn(c[d],0,0,-1);a.o.push(e)}return a},{className:"gb_sc",items:[Cn("gb_da"),Cn("gb_Ac"),Cn("gb_jf"),Cn("gb_eb",0,1),Cn("gb_6f"),Cn("gb_ab",0,1),Cn("gb_7f"),Cn("gb_If")],nb:[{className:"gb_eb",items:[Cn("gb_gb",0,1)],nb:[{className:"gb_gb",items:[Cn("gb_cb",0,1)],nb:[]}]}]}]},{className:"gb_Bf",items:[Cn("gbqff",1,1),Cn("gb_Af")],nb:[]}]},En=function(a,c){if(!c){c=window.document.querySelector("."+a.className);if(!c)return null;c=new vn(c)}for(var d=
{},e=0;e<a.items.length;e++){var f=a.items[e],g;if(g=(g=window.document.querySelector("."+f.className))?new Bn(g,f.qb.Oc,f.qb.$c,f.qb.cc):null)c.o.push(g),d[f.className]=g}for(e=0;e<a.nb.length;e++){f=a.nb[e];var h;"function"==typeof f?h=f(d):h=En(f,d[f.className]);h&&c.w.push(h)}return c};
_.Gn=function(a,c){_.A.call(this);this.H=c;this.o=window.document.getElementById("gb");this.B=(this.b=window.document.querySelector(".gb_hb"))?this.b.querySelector(".gb_sc"):null;this.A=[];this.he=_.M(_.H(a,5),60);this.C=_.H(a,4);this.Ph=_.M(_.H(a,2),152);this.Vf=_.M(_.H(a,1),30);this.w=null;this.Re=_.K(_.H(a,3),!0);this.o&&this.C&&(this.o.style.minWidth=this.C+"px");this.wb=null;this.o&&(this.wb=new nn(this.o,[{id:"t",max:900},{id:"f"}]));this.Re&&(this.o&&(Fn(this),_.U(this.o,"gb_T"),this.b&&_.U(this.b,
"gb_T"),_.pn()||(this.w=En(Dn))),this.Wa(),window.setTimeout((0,_.v)(this.Wa,this),0));_.y("gbar.elc",(0,_.v)(this.K,this));_.y("gbar.ela",_.ma);_.y("gbar.elh",(0,_.v)(this.D,this))};_.z(_.Gn,_.A);_.Ja(_.Gn,"el");var Hn=function(){var a=_.Gn.ai();return{es:a?{f:a.Ph,h:a.he,m:a.Vf}:{f:152,h:60,m:30},mo:"md",vh:window.innerHeight||0,vw:window.innerWidth||0}};_.Gn.prototype.Wa=function(a){a&&Fn(this);this.w&&this.w.Wa(Math.max(window.document.documentElement.clientWidth,sn(this.o)));_.un(this.b)};
_.Gn.prototype.F=function(){try{var a=window.document.getElementById("gb"),c=a.querySelector(".gb_hb");_.V(a,"gb_og");c&&_.V(c,"gb_og");a=0;for(var d;d=kn[a];a++){var e=window.document.getElementById(d);e&&_.V(e,"gbqfh")}ln(!1)}catch(f){jn(f,"rhcc")}this.G&&this.G();this.Wa(!0)};
_.Gn.prototype.M=function(){try{var a=window.document.getElementById("gb"),c=a.querySelector(".gb_hb");_.U(a,"gb_og");c&&_.U(c,"gb_og");a=0;for(var d;d=kn[a];a++){var e=window.document.getElementById(d);e&&_.U(e,"gbqfh")}ln(!0)}catch(f){jn(f,"ahcc")}this.Wa(!0)};_.In=function(a){return a.wb?a.wb.b:"f"};_.Gn.prototype.K=function(a){this.A.push(a)};_.Gn.prototype.D=function(a){this.he=Hn().es.h+a;for(a=0;a<this.A.length;a++)try{this.A[a](Hn())}catch(c){this.H.log(c)}}; var Fn=function(a){if(a.b){var c;a.w&&(c=zn(a.w));_.U(a.b,"gb_W");a.b.style.minWidth=a.b.offsetWidth-rn(a.b)+"px";a.B.style.minWidth=a.B.offsetWidth-rn(a.B)+"px";_.V(a.b,"gb_W");c&&An(a.w,c)}};
_.Yg(function(){var a=_.J(_.O(),Vm,21)||new Vm,c=_.Nl();a=new _.Gn(a,c);_.La("el",a);_.y("gbar.gpca",(0,_.v)(a.M,a));_.y("gbar.gpcr",(0,_.v)(a.F,a))});_.y("gbar.elr",Hn);_.Jn=function(a){this.w=_.Gn.V();this.o=a};_.Jn.prototype.b=function(a,c){"t"==_.In(this.w)?(_.U(a,"gb_V"),c?(_.V(a,"gb_db"),_.U(a,"gb_8f")):(_.V(a,"gb_8f"),_.U(a,"gb_db"))):_.ei(a,["gb_V","gb_db","gb_8f"])};_.y("gbar.sos",function(){return window.document.querySelectorAll(".gb_Df")});_.y("gbar.si",function(){return window.document.querySelector(".gb_Cf")});
_.Yg(function(){if(_.J(_.O(),_.Xm,16)){var a=window.document.querySelector(".gb_hb"),c=_.J(_.O(),_.Xm,16)||new _.Xm;c=_.K(_.H(c,1),!1);c=new _.Jn(c);a&&c.o&&c.b(a,!1)}});
}catch(e){_._DumpException(e)}
/* _Module_:sye */
try{
_.Kn=function(a,c,d){return function(){try{return c.apply(d,arguments)}catch(e){a.log(e)}}};_.Ln=function(){_.A.call(this);this.o=new _.Q};_.z(_.Ln,_.A);_.Ln.prototype[_.md]=!0;_.k=_.Ln.prototype;_.k.L=function(a,c,d,e){return this.o.L(a,c,d,e)};_.k.Ma=function(a,c,d,e){return this.o.Ma(a,c,d,e)};_.k.ua=function(a,c,d,e){return this.o.ua(a,c,d,e)};_.k.uc=function(a){return this.o.uc(a)};_.k.dispatchEvent=function(a){return this.o.dispatchEvent(a)};_.k.Yc=function(a){return this.o.Yc(a)};_.k.Lc=function(){return this.o.Lc()}; _.k.Hb=function(a,c,d){return this.o.Hb(a,c,d)};_.k.Lb=function(a,c){return this.o.Lb(a,c)};_.k.rb=function(a,c,d,e){return this.o.rb(a,c,d,e)};_.k.hasListener=function(a,c){return this.o.hasListener(a,c)};

}catch(e){_._DumpException(e)}
/* _Module_:fot */
try{
var Mn=function(){_.Xg.w(_.Wb)},Nn=function(a,c){var d=_.Nl();d=_.Kn(d,Mn);a.addEventListener?a.addEventListener(c,d):a.attachEvent&&a.attachEvent("on"+c,d)},On=[1,2],Pn=function(a){_.G(this,a,0,-1,On)};_.z(Pn,_.F);var Qn=function(a,c){a.B.push(c)},Rn=function(a,c){a.__PVT=c},Sn=function(a){_.A.call(this);this.C=a;this.A=this.b=null;this.o={};this.B={};this.w={}};_.z(Sn,_.A);_.k=Sn.prototype;_.k.hf=function(a){a&&this.b&&a!=this.b&&this.b.close();this.b=a};
_.k.Te=function(a){a=this.w[a]||a;return this.b==a};_.k.Th=function(a){this.A=a};_.k.Se=function(a){return this.A==a};_.k.od=function(){this.b&&this.b.close();this.b=null};_.k.Gf=function(a){this.b&&this.b.getId()==a&&this.od()};_.k.Zb=function(a,c,d){this.o[a]=this.o[a]||{};this.o[a][c]=this.o[a][c]||[];this.o[a][c].push(d)};_.k.md=function(a,c){c=c.getId();if(this.o[a]&&this.o[a][c])for(var d=0;d<this.o[a][c].length;d++)try{this.o[a][c][d]()}catch(e){this.C.log(e)}};
_.k.Vh=function(a,c){this.B[a]=c};_.k.Ef=function(a){return!this.B[a.getId()]};_.k.fh=function(){return!!this.b&&this.b.Fa};_.k.Cf=function(){return!!this.b};_.k.Ye=function(){this.b&&this.b.gb()};_.k.Xh=function(a){this.w[a]&&(this.b&&this.b.getId()==a||this.w[a].open())};_.k.rh=function(a){this.w[a.getId()]=a};var Tn=function(){_.A.call(this);this.o=[];this.b=[]};_.z(Tn,_.A);Tn.prototype.w=function(a,c){this.o.push({Ec:a,options:c})};
Tn.prototype.init=function(a,c,d){window.gapi={};var e=window.___jsl={};e.h=_.L(_.H(a,1));e.ms=_.L(_.H(a,2));e.m=_.L(_.H(a,3));e.l=[];_.H(c,1)&&(a=_.H(c,3))&&this.b.push(a);_.H(d,1)&&(d=_.H(d,2))&&this.b.push(d);_.y("gapi.load",(0,_.v)(this.w,this));return this};
var Un=function(a){_.A.call(this);this.C=a;this.w=this.b=null;this.D=0;this.B={};this.o=!1;a=window.navigator.userAgent;0<=a.indexOf("MSIE")&&0<=a.indexOf("Trident")&&(a=/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a))&&a[1]&&9>(0,window.parseFloat)(a[1])&&(this.o=!0)};_.z(Un,_.A);
var Vn=function(a,c,d){if(!a.o)if(d instanceof Array)for(var e in d)Vn(a,c,d[e]);else{e=(0,_.v)(a.F,a,c);var f=a.D+d;a.D++;c.setAttribute("data-eqid",f);a.B[f]=e;c&&c.addEventListener?c.addEventListener(d,e,!1):c&&c.attachEvent?c.attachEvent("on"+d,e):a.C.log(Error("W`"+c))}};
Un.prototype.A=function(a,c){if(this.o)return null;if(c instanceof Array){var d=null,e;for(e in c){var f=this.A(a,c[e]);f&&(d=f)}return d}d=null;this.b&&this.b.type==c&&this.w==a&&(d=this.b,this.b=null);if(e=a.getAttribute("data-eqid"))a.removeAttribute("data-eqid"),(e=this.B[e])?a.removeEventListener?a.removeEventListener(c,e,!1):a.detachEvent&&a.detachEvent("on"+c,e):this.C.log(Error("X`"+a));return d};
Un.prototype.F=function(a,c){this.b=c;this.w=a;c.preventDefault?c.preventDefault():c.returnValue=!1};(function(){var a;window.gbar&&window.gbar._LDD?a=window.gbar._LDD:a=[];var c=_.ng();Rn(window,_.L(_.H(c,8)));c=_.Yb();var d=_.Nl();a=new _.en(c,_.J(_.O(),Pn,17)||new Pn,a,d,_.Pl());_.La("m",a);var e=function(){_.y("gbar.qm",(0,_.v)(function(a){try{a()}catch(g){d.log(g)}},this));_.kg("api").Sa()};_.K(_.H(c,18),!0)?a.C(e):(c=_.M(_.H(c,19),200),c=(0,_.v)(a.C,a,e,c),_.Yg(c))})();Nn(window.document,"DOMContentLoaded"); Nn(window,"load");
_.y("gbar.ldb",_.v(_.Xg.w,_.Xg,_.Wb));_.y("gbar.mls",function(){});_.La("eq",new Un(_.Nl()));_.La("gs",(new Tn).init(_.vl(),_.J(_.O(),_.sl,5)||new _.sl,_.J(_.O(),_.Um,6)||new _.Um));(function(){for(var a=function(a){return function(){_.Ql(44,{n:a})}},c=0;c<_.Oa.length;c++){var d="gbar."+_.Oa[c];_.y(d,a(d))}var e=_.Ha.V();_.Ia(e,"api").Sa();Qn(_.Ia(e,"m"),function(){_.Ia(e,"api").Sa()})})();var Wn=function(a){_.Yg(function(){var c=window.document.querySelector("."+a);c&&(c=c.querySelector(".gb_b"))&&Vn(_.kg("eq"),c,"click")})};var Xn=window.document.querySelector(".gb_da"),Yn=/(\s+|^)gb_zf(\s+|$)/;Xn&&!Yn.test(Xn.className)&&Wn("gb_da");var Zn=new Sn(_.Nl());_.La("dd",Zn);_.y("gbar.close",(0,_.v)(Zn.od,Zn));_.y("gbar.cls",(0,_.v)(Zn.Gf,Zn));_.y("gbar.abh",(0,_.v)(Zn.Zb,Zn,0));_.y("gbar.adh",(0,_.v)(Zn.Zb,Zn,1));_.y("gbar.ach",(0,_.v)(Zn.Zb,Zn,2));_.y("gbar.aeh",(0,_.v)(Zn.Vh,Zn));_.y("gbar.bsy",(0,_.v)(Zn.fh,Zn));_.y("gbar.op",(0,_.v)(Zn.Cf,Zn));
Wn("gb_eb");_.Yg(function(){var a=window.document.querySelector(".gb_2b");a&&Vn(_.kg("eq"),a,"click")});Wn("gb_Ac");_.y("gbar.qfgw",(0,_.v)(window.document.getElementById,window.document,"gbqfqw"));_.y("gbar.qfgq",(0,_.v)(window.document.getElementById,window.document,"gbqfq"));_.y("gbar.qfgf",(0,_.v)(window.document.getElementById,window.document,"gbqf"));_.y("gbar.qfsb",(0,_.v)(window.document.getElementById,window.document,"gbqfb"));
Wn("gb_jf");Wn("gb_If");
}catch(e){_._DumpException(e)}
/* _GlobalSuffix_ */
})(this.gbar_);
// Google Inc.
</script><div class="gb_5a"><div class="gb_ga gb_fa gb_ta" aria-label="แอป Google" aria-hidden="true" role="region"><ul class="gb_ia gb_ba" aria-dropeffect="move"><li class="gb_Z" aria-grabbed="false"><a class="gb_O" data-pid="192" href="https://myaccount.google.com/?utm_source=OGB&amp;utm_medium=app" id="gb192"><div class="gb_7"></div><div class="gb_8"></div><div class="gb_9"></div><div class="gb_aa"></div><span class="gb_2" style="background-position:0 -966px"></span><span class="gb_3">บัญชีของฉัน</span></a></li><li class="gb_Z" aria-grabbed="false"><a class="gb_O" data-pid="1" href="https://www.google.co.th/webhp?tab=ww" id="gb1"><div class="gb_7"></div><div class="gb_8"></div><div class="gb_9"></div><div class="gb_aa"></div><span class="gb_2" style="background-position:0 -69px"></span><span class="gb_3">ค้นหา</span></a></li><li class="gb_Z" aria-grabbed="false"><a class="gb_O" data-pid="8" href="https://maps.google.co.th/maps?hl=th&amp;tab=wl" id="gb8"><div class="gb_7"></div><div class="gb_8"></div><div class="gb_9"></div><div class="gb_aa"></div><span class="gb_2" style="background-position:0 -1794px"></span><span class="gb_3">Maps</span></a></li><li class="gb_Z" aria-grabbed="false"><a class="gb_O" data-pid="36" href="https://www.youtube.com/?gl=TH" id="gb36"><div class="gb_7"></div><div class="gb_8"></div><div class="gb_9"></div><div class="gb_aa"></div>gradient(top,#3c7ae4,#3f76d3);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3c7ae4,endColorstr=#3f76d3,GradientType=1)}.gbqfi{background-position:-428px 0;display:inline-block;margin:-1px;height:30px;width:30px}.gbqfqw{background:#fff;background-clip:padding-box;border:1px solid #cdcdcd;border-color:rgba(0,0,0,.15);border-right-width:0;height:30px;-webkit-box-sizing:border-box;box-sizing:border-box}#gbfwc.gbqfqw{border-right-width:1px}#gbqfqw{position:relative}.gbqfqw.gbqfqw:hover{border-color:#a9a9a9;border-color:rgba(0,0,0,.3)}.gbqfwa{display:inline-block;width:100%}.gbqfwb{width:40%}.gbqfwc{width:60%}.gbqfwb .gbqfqw{margin-left:10px}.gbqfqw.gbqfqw:active,.gbqfqw.gbqfqwf.gbqfqwf{border-color:#4285f4}#gbqfq,#gbqfqb,#gbqfqc{background:transparent;border:none;height:20px;margin-top:4px;padding:0;vertical-align:top;width:100%}#gbqfq:focus,#gbqfqb:focus,#gbqfqc:focus{outline:none}.gbqfif,.gbqfsf{color:#222;font:16px arial,sans-serif}#gbqfbwa{display:none;text-align:center;height:0}#gbqfbwa.gbqfba{margin:16px 8px}#gbqfsa,#gbqfsb{font:bold 11px/27px Arial,sans-serif!important;vertical-align:top}.gb_ea .gbqfqw.gbqfqw,.gb_X .gbqfqw.gbqfqw{border-color:rgba(255,255,255,1);-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);box-shadow:0 1px 2px rgba(0,0,0,.2)}.gb_ea #gbqfb,.gb_X #gbqfb{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);box-shadow:0 1px 2px rgba(0,0,0,.2)}.gb_ea #gbqfb:hover,.gb_X #gbqfb:hover{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1),0 1px 2px rgba(0,0,0,.2);box-shadow:0 1px 1px rgba(0,0,0,0.1),0 1px 2px rgba(0,0,0,.2)}.gb_ea #gbqfb:active,.gb_X #gbqfb:active{-webkit-box-shadow:inset 0 2px 0 rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.2);box-shadow:inset 0 2px 0 rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.2)}.gbqfb,.gbqfba,.gbqfbb{cursor:default!important;display:inline-block;font-weight:bold;height:29px;line-height:29px;min-width:54px;padding:0 8px;text-align:center;text-decoration:none!important;-webkit-border-radius:2px;border-radius:2px;-webkit-user-select:none}.gbqfba:focus{border:1px solid #4d90fe;outline:none;-webkit-box-shadow:inset 0 0 0 1px rgba(255,255,255,0.5);box-shadow:inset 0 0 0 1px rgba(255,255,255,0.5)}.gbqfba:hover{border-color:#c6c6c6;color:#222!important;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1);background:#f8f8f8;background:-webkit-linear-gradient(top,#f8f8f8,#f1f1f1);background:linear-gradient(top,#f8f8f8,#f1f1f1);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#f8f8f8,endColorstr=#f1f1f1,GradientType=1)}.gbqfba:hover:focus{-webkit-box-shadow:inset 0 0 0 1px #fff,0 1px 1px rgba(0,0,0,0.1);box-shadow:inset 0 0 0 1px #fff,0 1px 1px rgba(0,0,0,0.1)}.gbqfb::-moz-focus-inner{border:0}.gbqfba::-moz-focus-inner{border:0}.gbqfba{border:1px solid #dcdcdc;border-color:rgba(0,0,0,0.1);color:#444!important;font-size:11px;background:#f5f5f5;background:-webkit-linear-gradient(top,#f5f5f5,#f1f1f1);background:linear-gradient(top,#f5f5f5,#f1f1f1);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#f5f5f5,endColorstr=#f1f1f1,GradientType=1)}.gbqfba:active{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}@-webkit-keyframes gb__nb{0%{-webkit-transform:scale(0,0);transform:scale(0,0)}20%{-webkit-transform:scale(1.4,1.4);transform:scale(1.4,1.4)}50%{-webkit-transform:scale(.8,.8);transform:scale(.8,.8)}85%{-webkit-transform:scale(1.1,1.1);transform:scale(1.1,1.1)}to{-webkit-transform:scale(1.0,1.0);transform:scale(1.0,1.0)}}@keyframes gb__nb{0%{-webkit-transform:scale(0,0);transform:scale(0,0)}20%{-webkit-transform:scale(1.4,1.4);transform:scale(1.4,1.4)}50%{-webkit-transform:scale(.8,.8);transform:scale(.8,.8)}85%{-webkit-transform:scale(1.1,1.1);transform:scale(1.1,1.1)}to{-webkit-transform:scale(1.0,1.0);transform:scale(1.0,1.0)}}.gb_uc{background-position:-314px -38px;opacity:.55;height:100%;width:100%}.gb_b:hover .gb_uc,.gb_b:focus .gb_uc{opacity:.85}.gb_vc .gb_uc{background-position:-463px 0}.gb_wc{background-color:#cb4437;-webkit-border-radius:8px;border-radius:8px;font:bold 11px Arial;color:#fff;line-height:16px;min-width:14px;padding:0 1px;position:absolute;right:0;text-align:center;text-shadow:0 1px 0 rgba(0,0,0,0.1);top:0;visibility:hidden;z-index:990}.gb_xc .gb_wc,.gb_xc .gb_yc,.gb_xc .gb_yc.gb_zc{visibility:visible}.gb_yc{padding:0 2px;visibility:hidden}.gb_Ac:not(.gb_Bc) .gb_kb,.gb_Ac:not(.gb_Bc) .gb_jb{left:3px}.gb_wc.gb_Cc{-webkit-animation:gb__nb .6s 1s both ease-in-out;animation:gb__nb .6s 1s both ease-in-out;-webkit-perspective-origin:top right;perspective-origin:top right;-webkit-transform:scale(1,1);transform:scale(1,1);-webkit-transform-origin:top right;transform-origin:top right}.gb_Cc .gb_yc{visibility:visible}.gb_ea .gb_b .gb_uc{background-position:0 0;opacity:.7}.gb_ea .gb_vc .gb_uc{background-position:-279px -38px}.gb_ea .gb_b:hover .gb_uc,.gb_ea .gb_b:focus .gb_uc{opacity:.85}.gb_X .gb_b .gb_uc{background-position:-349px -38px;opacity:1}.gb_X .gb_vc .gb_uc{background-position:-393px 0}.gb_ea .gb_wc,.gb_X .gb_wc{border:none}.gb_Ac .gb_Dc{font-size:14px;font-weight:bold;top:0;right:0}.gb_Ac .gb_b{display:inline-block;vertical-align:middle;-webkit-box-sizing:border-box;box-sizing:border-box;height:30px;width:30px}.gb_Ac .gb_jb{border-bottom-color:#e5e5e5}.gb_Ec{background-color:rgba(0,0,0,.55);color:#fff;font-size:12px;font-weight:bold;line-height:20px;margin:5px;padding:0 2px;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-border-radius:50%;border-radius:50%;height:20px;width:20px}.gb_Ec.gb_Fc{background-position:-194px -21px}.gb_Ec.gb_Hc{background-position:-194px -46px}.gb_b:hover .gb_Ec,.gb_b:focus .gb_Ec{background-color:rgba(0,0,0,.85)}#gbsfw.gb_Ic{background:#e5e5e5;border-color:#ccc}.gb_ea .gb_Ec{background-color:rgba(0,0,0,.7)}.gb_X .gb_Ec.gb_Ec,.gb_X .gb_xc .gb_Ec.gb_Ec,.gb_X .gb_xc .gb_b:hover .gb_Ec,.gb_X .gb_xc .gb_b:focus .gb_Ec{background-color:#fff;color:#404040}.gb_X .gb_Ec.gb_Fc{background-position:-70px 0}.gb_X .gb_Ec.gb_Hc{background-position:-219px 0}.gb_xc .gb_Ec.gb_Ec{background-color:#db4437;color:#fff}.gb_xc .gb_b:hover .gb_Ec,.gb_xc .gb_b:focus .gb_Ec{background-color:#a52714}.gb_N .gbqfi::before{left:-428px;top:0}.gb_Fb .gbqfb:focus .gbqfi{outline:1px dotted #fff}.gb_N .gb_da .gb_b::before,.gb_N.gb_ea .gb_da .gb_b::before{left:-132px;top:-38px}.gb_N.gb_X .gb_da .gb_b::before{left:-463px;top:-35px}.gb_Fb .gb_ja{position:relative}.gb_da .gb_b:hover,.gb_da .gb_b:focus{opacity:.85}.gb_X .gb_da .gb_b:hover,.gb_X .gb_da .gb_b:focus{opacity:1}@media (min-resolution:1.25dppx),(-webkit-min-device-pixel-ratio:1.25),(min-device-pixel-ratio:1.25){.gb_na .gb_2{background-image:url('//ssl.gstatic.com/gb/images/p2_737b92c0.png')}}.gb_N .gb_2b .gb_4b::before{left:0;top:-35px}.gb_N.gb_X .gb_2b .gb_4b::before{left:-296px;top:0}.gb_N.gb_ea .gb_2b .gb_4b::before{left:-97px;top:0}.gb_N .gb_Wa{background-image:none!important}.gb_N .gb_5b{visibility:visible}.gb_Fb .gb_6d span{background:transparent}.gb_N .gb_uc::before{left:-314px;top:-38px}.gb_N .gb_vc .gb_uc::before{left:-463px;top:0}.gb_N.gb_ea .gb_b .gb_uc::before{left:0;top:0}.gb_N.gb_ea .gb_vc .gb_uc::before{left:-279px;top:-38px}.gb_N.gb_X .gb_b .gb_uc::before{left:-349px;top:-38px}.gb_N.gb_X .gb_vc .gb_uc::before{left:-393px;top:0}.gb_Fb .gb_Ec{border:1px solid #fff;color:#fff}.gb_Fb.gb_ea .gb_Ec{border-color:#000;color:#000}.gb_N .gb_Ec.gb_Fc::before,.gb_Fb.gb_N.gb_X .gb_Ec.gb_Fc::before{left:-194px;top:-21px}.gb_N .gb_Ec.gb_Hc::before,.gb_Fb.gb_N.gb_X .gb_Ec.gb_Hc::before{left:-194px;top:-46px}.gb_N.gb_X .gb_Ec.gb_Fc::before,.gb_Fb.gb_N.gb_ea .gb_Ec.gb_Fc::before{left:-70px;top:0}.gb_N.gb_X .gb_Ec.gb_Hc::before,.gb_Fb.gb_N.gb_ea .gb_Ec.gb_Hc::before{left:-219px;top:0}.gb_ld{color:#ffffff;font-size:13px;font-weight:bold;height:25px;line-height:19px;padding-top:5px;padding-left:12px;position:relative;background-color:#4d90fe}.gb_ld .gb_md{color:#ffffff;cursor:default;font-size:22px;font-weight:normal;position:absolute;right:12px;top:5px}.gb_ld .gb_6c,.gb_ld .gb_nd{color:#ffffff;display:inline-block;font-size:11px;margin-left:16px;padding:0 8px;white-space:nowrap}.gb_od{background:none;background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0.16)),to(rgba(0,0,0,0.2)));background-image:-webkit-linear-gradient(top,rgba(0,0,0,0.16),rgba(0,0,0,0.2));background-image:linear-gradient(top,rgba(0,0,0,0.16),rgba(0,0,0,0.2));background-image:-webkit-linear-gradient(top,rgba(0,0,0,0.16),rgba(0,0,0,0.2));border-radius:2px;border:1px solid #dcdcdc;border:1px solid rgba(0,0,0,0.1);cursor:default!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#160000ff,endColorstr=#220000ff);text-decoration:none!important;-webkit-border-radius:2px}.gb_od:hover{background:none;background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0.14)),to(rgba(0,0,0,0.2)));background-image:-webkit-linear-gradient(top,rgba(0,0,0,0.14),rgba(0,0,0,0.2));background-image:linear-gradient(top,rgba(0,0,0,0.14),rgba(0,0,0,0.2));background-image:-webkit-linear-gradient(top,rgba(0,0,0,0.14),rgba(0,0,0,0.2));border:1px solid rgba(0,0,0,0.2);box-shadow:0 1px 1px rgba(0,0,0,0.1);-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#14000000,endColorstr=#22000000)}.gb_od:active{box-shadow:inset 0 1px 2px rgba(0,0,0,0.3);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.3)}.gb_Wc.gb_Xc{padding:0}.gb_Xc .gb_fa{padding:26px 26px 22px 13px;background:#ffffff}.gb_Zc.gb_Xc .gb_fa{background:#4d90fe}a.gb_0c{color:#666666!important;font-size:22px;height:9px;opacity:.8;position:absolute;right:14px;top:4px;text-decoration:none!important;width:9px}.gb_Zc a.gb_0c{color:#c1d1f4!important}a.gb_0c:hover,a.gb_0c:active{opacity:1}.gb_1c{padding:0;width:258px;white-space:normal;display:table}.gb_2c .gb_fa{top:36px;border:0;padding:16px;-webkit-box-shadow:4px 4px 12px rgba(0,0,0,0.4);box-shadow:4px 4px 12px rgba(0,0,0,0.4)}.gb_2c .gb_1c{width:328px}.gb_2c .gb_Fa,.gb_2c .gb_3c,.gb_2c .gb_Vc,.gb_2c .gb_Ba,.gb_4c{line-height:normal;font-family:Roboto,RobotoDraft,Helvetica,Arial,sans-serif}.gb_2c .gb_Fa,.gb_2c .gb_3c,.gb_2c .gb_Ba{font-weight:500}.gb_2c .gb_Fa,.gb_2c .gb_Ba{border:0;padding:10px 8px}.gb_Xc .gb_Fa:active{outline:none;-webkit-box-shadow:0 4px 5px rgba(0,0,0,.16);box-shadow:0 4px 5px rgba(0,0,0,.16)}.gb_2c .gb_3c{color:#222;margin-bottom:8px}.gb_2c .gb_Vc{color:#808080;font-size:14px}.gb_5c{text-align:right;font-size:14px;padding-bottom:0;white-space:nowrap}.gb_5c .gb_6c{margin-left:8px}.gb_5c .gb_7c.gb_6c img{background-color:inherit;-webkit-border-radius:initial;border-radius:initial;height:1.5em;margin:-0.25em 10px -0.25em 2px;vertical-align:text-top;width:1.5em}.gb_2c .gb_1c .gb_8c .gb_7c{border:2px solid transparent}.gb_2c .gb_1c .gb_8c .gb_7c:focus{border-color:#bbccff}.gb_2c .gb_1c .gb_8c .gb_7c:focus:after,.gb_2c .gb_1c .gb_8c .gb_7c:hover:after{background-color:transparent}.gb_4c{background-color:#404040;color:#fff;padding:16px;position:absolute;top:36px;min-width:328px;max-width:650px;right:0;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:4px 4px 12px rgba(0,0,0,0.4);box-shadow:4px 4px 12px rgba(0,0,0,0.4)}.gb_4c a,.gb_4c a:visited{color:#5e97f6;text-decoration:none}.gb_9c{text-transform:uppercase}.gb_ad{padding-left:50px}.gb_Zc .gb_1c{width:200px}.gb_3c{color:#333333;font-size:16px;line-height:20px;margin:0;margin-bottom:16px}.gb_Zc .gb_3c{color:#ffffff}.gb_Vc{color:#666666;line-height:17px;margin:0;margin-bottom:5px}.gb_Zc .gb_Vc{color:#ffffff}.gb_bd{text-decoration:none;color:#5e97f6}.gb_bd:visited{color:#5e97f6}.gb_bd:hover,.gb_bd:active{text-decoration:underline}.gb_cd{position:absolute;background:transparent;top:-999px;z-index:-1;visibility:hidden;margin-top:1px;margin-left:1px}#gb.gb_Xc{margin:0}.gb_Xc .gb_wb{background:#4d90fe;border-color:#3079ed;margin-top:15px}.gb_2c .gb_Fa{background:#4285f4}#gb.gb_Xc a.gb_wb.gb_wb{color:#ffffff}.gb_Xc .gb_wb:hover{background:#357ae8;border-color:#2f5bb7}.gb_dd .gb_Dc .gb_jb{border-bottom-color:#ffffff;display:block}.gb_ed .gb_Dc .gb_jb{border-bottom-color:#4d90fe;display:block}.gb_dd .gb_Dc .gb_kb,.gb_ed .gb_Dc .gb_kb{display:block}.gb_fd,.gb_8c{display:table-cell}.gb_fd{vertical-align:middle}.gb_2c .gb_fd{vertical-align:top}.gb_8c{padding-left:13px;width:100%}.gb_2c .gb_8c{padding-left:20px}.gb_gd{display:block;display:inline-block;padding:1em 0 0 0;position:relative;width:100%}.gb_hd{color:#ff0000;font-style:italic;margin:0;padding-left:46px}.gb_gd .gb_id{float:right;margin:-20px 0;width:-webkit-calc(100% - 46px);width:calc(100% - 46px)}.gb_jd svg{fill:grey}.gb_jd.gb_kd svg{fill:#4285f4}.gb_gd .gb_id label:after{background-color:#4285f4}.gb_jd{display:inline;float:right;margin-right:22px;position:relative;top:-4px}.gb_ff{margin-bottom:32px;font-size:small}.gb_ff .gb_gf{margin-right:5px}.gb_ff .gb_hf{color:red}.gb_Lc{display:none}.gb_Lc.gb_g{display:block}.gb_Mc{background-color:#fff;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.08);box-shadow:0 1px 0 rgba(0,0,0,0.08);color:#000;position:relative;z-index:986}.gb_Nc{height:40px;padding:16px 24px;white-space:nowrap}.gb_Oc{position:fixed;bottom:16px;padding:16px;right:16px;white-space:normal;width:328px;-webkit-transition:width .2s,bottom .2s,right .2s;transition:width .2s,bottom .2s,right .2s;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 5px 5px -3px rgba(0,0,0,0.2),0 8px 10px 1px rgba(0,0,0,0.14),0 3px 14px 2px rgba(0,0,0,0.12);box-shadow:0 5px 5px -3px rgba(0,0,0,0.2),0 8px 10px 1px rgba(0,0,0,0.14),0 3px 14px 2px rgba(0,0,0,0.12)}@media (max-width:400px){.gb_Mc.gb_Oc{max-width:368px;width:auto;bottom:0;right:0}}.gb_Mc .gb_wb{border:0;font-weight:500;font-size:14px;line-height:36px;min-width:32px;padding:0 16px;vertical-align:middle}.gb_Mc .gb_wb:before{content:'';height:6px;left:0;position:absolute;top:-6px;width:100%}.gb_Mc .gb_wb:after{bottom:-6px;content:'';height:6px;left:0;position:absolute;width:100%}.gb_Mc .gb_wb+.gb_wb{margin-left:8px}.gb_Pc{height:48px;padding:4px;margin:-8px 0 0 -8px}.gb_Oc .gb_Pc{float:left;margin:-4px}.gb_Qc{font-family:Roboto,RobotoDraft,Helvetica,Arial,sans-serif;overflow:hidden;vertical-align:top}.gb_Nc .gb_Qc{display:inline-block;padding-left:8px;width:640px}.gb_Oc .gb_Qc{display:block;margin-left:56px;padding-bottom:16px}.gb_Rc{background-color:inherit}.gb_Nc .gb_Rc{display:inline-block;position:absolute;top:18px;right:24px}.gb_Oc .gb_Rc{text-align:right;padding-right:24px;padding-top:6px}.gb_Rc .gb_Sc{height:1.5em;margin:-.25em 10px -.25em 0;vertical-align:text-top;width:1.5em}.gb_Tc{line-height:20px;font-size:16px;font-weight:700;color:rgba(0,0,0,.87)}.gb_Oc .gb_Tc{color:rgba(0,0,0,.87);font-size:16px;line-height:20px;padding-top:8px}.gb_Nc .gb_Tc,.gb_Nc .gb_Uc{width:640px}.gb_Uc .gb_Vc,.gb_Uc{line-height:20px;font-size:13px;font-weight:400;color:rgba(0,0,0,.54)}.gb_Oc .gb_Uc .gb_Vc{font-size:14px}.gb_Oc .gb_Uc{padding-top:12px}.gb_Oc .gb_Uc a{color:rgba(66,133,244,1)}.gb_N .gb_jf .gb_b::before{left:-498px;top:-35px}.gb_N.gb_ea .gb_jf .gb_b::before{left:-498px;top:0}.gb_N.gb_X .gb_jf .gb_b::before{left:-428px;top:-35px}.gb_Fb .gb_kb{border:0;border-left:1px solid rgba(0,0,0,.2);border-top:1px solid rgba(0,0,0,.2);height:14px;width:14px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.gb_Fb .gb_jb{border:0;border-left:1px solid rgba(0,0,0,.2);border-top:1px solid rgba(0,0,0,.2);height:14px;width:14px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-color:#fff;background:#fff}.gb_N .gb_ag::before{clip:rect(25px 235px 41px 219px);left:-197px;top:-3px}.gb_N .gb_4b.gb_bg{position:absolute}.gb_N .gb_bg::before{clip:rect(0 210px 16px 194px);left:-164px;top:22px}.gb_N .gb_db .gb_ag::before{left:-189px}@media (min-resolution:1.25dppx),(-webkit-min-device-pixel-ratio:1.25),(min-device-pixel-ratio:1.25){.gb_N .gb_ag::before{clip:rect(50px 470px 82px 438px)}.gb_N .gb_bg::before{clip:rect(0 420px 32px 388px)}}.gb_N .gb_4b,.gb_N .gbii,.gb_N .gbip{background-image:none;overflow:hidden;position:relative}.gb_N .gb_4b::before{content:url('//ssl.gstatic.com/gb/images/i1_1967ca6a.png');position:absolute}@media (min-resolution:1.25dppx),(-webkit-min-device-pixel-ratio:1.25),(min-device-pixel-ratio:1.25){.gb_N .gb_4b::before{content:url('//ssl.gstatic.com/gb/images/i2_2ec824b0.png');-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0}}.gb_Fb a:focus{outline:1px dotted #fff!important}sentinel{}</style><script>(function(){var ctx=["root",[["t-aTz9-_sUcEc","ixdKU1_aJYhM","r-ixdKU1_aJYhM"]
,["t-orNZyHXTT74","imbn_eFtLBzE","r-imbn_eFtLBzE",[["update_uule_on_visibility_change_events",null,null,null,null,[null,null,null,null,0]
]
,["js_config",null,null,null,null,[null,"[null,null,1,30000,null,null,null,2,null,null,3,null,null,null,null,null,0,null,null,null,null,null,null,null,null,null,null,null,0]\n"]
]
]
]
]
]
;google.jsc.x(ctx);})();</script><script>(function(){var m=[];for(var a=window,b=m,c={},d=0;d<b.length;d+=2)c[b[d]]=JSON.parse(b[d+1]);a.W_jd=c;})();</script><script>(function(){var b={gen204:"aft",clearcut:1},d={gen204:"iml",clearcut:8},f={gen204:"ol",clearcut:14},g={gen204:"prt",clearcut:16};var h,k,m;function n(a){++m;a=a||window.event;google.iTick(a.target||a.srcElement)}function p(){var a=google.timers.webaft,c=a.t,e=c.start;a="/gen_204?s=webaft&atyp=csi&ei="+google.kEI+"&rt=wsrt."+a.wsrt;for(var t in c){var l=c[t];"start"!=t&&l&&e&&(a+=","+l.key.gen204+"."+(l.ts-e))}google.log("","",a)}
function q(){var a=r;if(!a||"none"==a.style.display)return!1;if(document.defaultView&&document.defaultView.getComputedStyle){var c=document.defaultView.getComputedStyle(a);if("hidden"==c.visibility||"0px"==c.height||"0px"==c.width)return!1}if(!a.getBoundingClientRect)return!0;a=a.getBoundingClientRect();c=a.left+window.pageXOffset;var e=a.top+window.pageYOffset;return 0>e+a.height||0>c+a.width||0>=a.height||0>=a.width?!1:e<=(window.innerHeight||document.documentElement.clientHeight)&&c<=(window.innerWidth||
document.documentElement.clientWidth)}var u=function(){google.rll(r,!1,function(){++h;0<h&&h==k&&(google.tick("webaft",b),p())})};if(google.timers&&google.timers.load.t){var v,w;google.c.c.e&&(h=k=0);google.c.c.a&&(google.startTick("aft"),google.afte=!1);var x=document.getElementsByTagName("img");v=x.length;for(var y=m=0,r;y<v;++y)if(r=x[y],google.c.c.i&&"none"==r.style.display)++m;else{var z="string"!=typeof r.src||!r.src,A=z||r.complete;r.getAttribute("data-noaft")?A=!0:google.c.c.d?r.getAttribute("data-deferred")?(A=!1,r.removeAttribute("data-deferred")):(z||"data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="===
r.src)&&r.setAttribute("lazy-loaded",""):google.c.c.m&&z&&r.getAttribute("data-bsrc")&&(A=!1);A?++m:(google.rll(r,!0,n),google.c.c.e&&q()&&(++k,u()))}w=v-m;google.rll(window,!1,function(){google.tick("load",f);google.c.e("load","imc",String(m));google.c.e("load","imn",String(v));google.c.e("load","imp",String(w));google.c.u("pr")});google.tick("load",[g,d]);google.c.c.e&&(google.tick("webaft",[g,b]),0==k&&p())}google.c.c.n&&0<document.getElementsByClassName("native_iml_flag").length&&google.c.b("ncr");}).call(this);</script><div data-jiis="cc" id="lfootercc"></div></div></body></html>
Process finished with exit code 0
โดย mindphp
16/08/2017 6:03 pm
บอร์ด: Programming - PHP
หัวข้อ: เขียน php ติดต่อ dbf
ตอบกลับ: 4
แสดง: 47

Re: เขียน php ติดต่อ dbf

ตำแหน่งที่เก็บไฟล์ DBF ไม่มีอยู่จริง หรือ ไฟล์โดนล็อค ไม่ให้เปิดใช้งานจาก user อื่น
โดย nuattawoot
16/08/2017 2:20 pm
บอร์ด: HTML CSS
หัวข้อ: ความหมายของ Error Code บน Browser แบบที่เจอกันบ่อยๆ
ตอบกลับ: 0
แสดง: 15

ความหมายของ Error Code บน Browser แบบที่เจอกันบ่อยๆ

ความหมายของ error code ต่างๆที่เป็น HTTP Status Code เราเคยเห็นข้อผิดพลาดบนเว็บเพจในรูปแบบต่างๆ เช่น 400, 500 ตัวเลขเหล่านี้ก็แสดงถึงความหมายที่ต้องการให้ผู้ใช้งานทราบถึงปัญหาที่เกิดขึ้นกับเว็บไซต์

HTTP Status Code คือ โค๊ดมาตรฐานที่แสดงขึ้นมาจากการตอบสนองของเซิฟเวอร์บนเว็บไซต์ต่างๆที่อยู่บนอินเตอร์เน็ต หรือเรียกง่ายๆว่า “โค๊ดแสดงสถานะของ http” โค๊ดต่างๆเหล่านี้จะช่วยให้เราวินิจฉัยและให้ทราบถึงปัญหาต่างๆที่เกิดขึ้นเมื่อหน้าเว็บ หรือ ทรัพยากรต่างๆ เช่น รูปภาพ ข้อความ วิดีโอ ฯลฯ ที่ไม่สามารถโหลดได้อย่างเป็นปกติ

สองกลุ่มหลักๆที่เรามักจะพบกันบ่อยๆ คือ:

500 Internal server error ความผิดพลาดจากเครื่องลูกข่าย

400 เกิดปัญหาจากฝั่งผู้ใช้งาน (00 หมายถึงตัวเลขต่อท้าย ไม่ว่าจะเป็น 401, 404)

ปัญหาหลักๆที่เกิดจากฝั่งผู้ใช้งานที่มักจะพบเจอบ่อยเกี่ยวกับโค๊ดแสดงสถานะของ http นั้นมักเป็น 404 (Not Found), 403 (Forbidden), และ 400 (Bad Request)

401 (Unauthorized) ในความหมายของการเกิด error code 401 กล่าวคือผู้ใช้ไม่มีข้อมูลประจำตัวที่จำเป็น
หมายเหตุ: ไซต์บางแห่งจะออก HTTP 401 เมื่อมีการห้ามที่อยู่ IP จากเว็บไซต์ (โดยปกติจะเป็นโดเมนเว็บไซต์) และที่อยู่เฉพาะถูกปฏิเสธการอนุญาตให้เข้าถึงเว็บไซต์

403 (Forbidden) ในความหมายของการเกิด error code 403 นั้นหมายถึง เราไม่มีสิทธิ์ที่จะเข้าถึงอะไรก็ตามที่เราพยายามที่จะต้องการให้มันแสดง
คำขอถูกต้อง แต่เซิร์ฟเวอร์ปฏิเสธการกระทำ ผู้ใช้อาจไม่มีสิทธิ์ที่จำเป็นสำหรับรีซอร์สหรืออาจต้องการบัญชีบางประเภท

404 (Not Found) ในความหมายของการเกิด error code 404 ไม่พบแหล่งข้อมูลที่ขอ แต่อาจมีให้บริการในอนาคต คำขอต่อจากลูกค้าจะได้รับอนุญาต

408 (Request timeout) ในความหมายของ 408 นั้นหมายถึงเราได้ส่งคำขอไปยัง Server (เช่น ส่งคำขอไปยังเซิร์ฟเวอร์เพื่อโหลดหน้าเว็บ) โดยเซิร์ฟเวอร์ไม่ตอบสนองหรือส่งข้อมูลกลับมา นั่นหมายถึงว่า เราได้หมดเวลาการเชื่อมต่อกับเซิร์ฟเวอร์ หรือ ใช้เวลานานในการเชื่อมต่อเพจจนเกิดข้อผิดพลาดนี้ขึ้นมา

500 Internal server error ความผิดพลาดจากเครื่องแม่ข่าย

500 เกิดปัญหาจากฝั่งเซิร์ฟเวอร์ (xx หมายถึงตัวเลขต่อท้าย ไม่ว่าจะเป็น 500, 503)

กลุ่มของข้อความ HTTP Status Code เหล่านี้เกิดมาจากการเรียกหน้าเว็บหรือ ทรัพยากรอื่นๆที่ไม่สามารถเข้าใจได้โดยเซิร์ฟเวอร์ของเว็บไซต์ด้วยเหตุผลบางอย่าง

ปัญหาหลักๆที่เกิดจากฝั้งเซิร์ฟเวอร์ที่มักจะพบเจอบ่อยๆคือ 500 (Internal Server Error), 503 (Service Unavailable) และ 502 (Bad Gateway)

500 (Internal Server Error) ในความหมายของการเกิด error code 500 นั้นหมายถึง ข้อความแสดงความผิดพลาดแบบทั่วไป ใช้เมื่อไม่มีข้อความเฉพาะที่เหมาะสมในการแจ้งสาเหตุ

502 (Bad Gateway) ในความหมายของการเกิด error code 502 นั้นหมายถึง เครื่องแม่ข่ายกำลังทำหน้าที่เป็นเกตเวย์หรือพร็อกซี และได้รับข้อความตอบรับที่ผิดพลาดจากเครื่องให้บริการเบื้องหลัง

503 (Service Unavailable) เครื่องแม่ข่ายยังไม่ให้บริการในปัจจุบัน อันเนื่องจากการใช้งานเกินพิกัดหรืออยู่ในระหว่างการบำรุงรักษา โดยปกติแล้วสถานภาพนี้จะเป็นอยู่เพียงชั่วคราว

อ้างอิงจาก wikipedia เข้าได้จาก th.wikipedia.org
โดย PPpang
17/08/2017 10:36 am
บอร์ด: Programming - PHP
หัวข้อ: เขียน php ติดต่อ dbf
ตอบกลับ: 4
แสดง: 47

Re: เขียน php ติดต่อ dbf

mindphp เขียน:ตำแหน่งที่เก็บไฟล์ DBF ไม่มีอยู่จริง หรือ ไฟล์โดนล็อค ไม่ให้เปิดใช้งานจาก user อื่น


หากตำแหน่งที่เก็บไฟล์ DBF ไม่มีอยู่จริง
ลองใช้ code โดยการ
require("../file/ARMAS.DBF");
ข้อมูลหน้าเว็บมันก็แสดงนะคะ

แต่ทำไมพอใช้ code เรียก
$db = dbase_open("../file/ARMAS.DBF", 0);
มันก็ยังฟ้อง Warning: dbase_open() [function.dbase-open]: unable to open database ../file/ARMAS.DBF อยู่ดีคะ T_T
สิทธิ์ก็ไปเปิดเป็น everyone แล้วคะ
โดย Ik Kat
10/08/2017 11:47 am
บอร์ด: Programming - PHP
หัวข้อ: สอบถามเกี่ยวกับฟังก์ชั่น ob_start() ค่ะ
ตอบกลับ: 1
แสดง: 46

Re: สอบถามเกี่ยวกับฟังก์ชั่น ob_start() ค่ะ

ฟังก์ชั่น ob_start()
ย่อมมาจาก output buffer เป็นการใส่ข้อมูลลงใน buffer ก่อนที่ php จะส่งข้อมูล ถ้าไม่ใส่ข้อมูลลงใน buffer ก่อน php จะส่งข้อมูลทันที

โดยส่วนใหญ่จะใช้ร่วมกับ session_start();
โดย Ik Kat
16/08/2017 5:29 pm
บอร์ด: Programming - PHP
หัวข้อ: เขียน php ติดต่อ dbf
ตอบกลับ: 4
แสดง: 47

Re: เขียน php ติดต่อ dbf

Warning: unable to open database

ที่อยู่ของไฟล์ หรือชื่อตารางผิดหรือเปล่าค่ะ
โดย thatsawan
13/08/2017 11:39 pm
บอร์ด: Programming - C/C++ & java & Python
หัวข้อ: ต้องการจัดข้อมูลใน Python ให้มันเพิ่ม keyเเละก็แบ่งข้อมูลออกมา
ตอบกลับ: 2
แสดง: 50

ต้องการจัดข้อมูลใน Python ให้มันเพิ่ม keyเเละก็แบ่งข้อมูลออกมา

ต้องการจะจัดข้อมูลออกมาจาก page ค่ะ page ละ 2 เเถว จะทำยังไงได้บ้างค่ะ จะ loop ยังไงให้มันเเบ่งข้อมูลออกมาเเละเพิ่ม key ของ page ขึ้นเรื่อยๆ

Code: เลือกทั้งหมด

d = {'x': 1, 'y': 2, 'z': 3,'a':4,'g':e}


ผลที่อยากได้

Code: เลือกทั้งหมด

[{'data': {'y': 2, 'x': 1}, 'page': 1}, {'data': {'y': 3, 'x': 4}, 'page': 2}]



ผลที่อยากได้อีกเเบบ

Code: เลือกทั้งหมด

item = { 'a':222,'b':333,'c': 444, 'd': 555,'e': 777, 'f': 888}

parent= {'x': 1, 'y': 2, 'z': 3,'a':4,'g':e}

[
{'data': {'y': 2, 'x': 1, 'g': {'a': 222, 'b': 333}}, 'page': 1},
 {'data': {'y': 2, 'x': 1, 'g': {'c': 444, 'd': 555}}, 'page': 2}
 {'data': {'y': 3, 'x': 4, 'g': {'e': 777, 'f': 888}}, 'page': 3}
]
โดย K_on
06/02/2013 5:22 am
บอร์ด: พูดคุยเรื่องทั่วไป จับฉ่าย
หัวข้อ: [TR]โปรแกรมเขียนไทยแปลเป็นภาษาคาราโอเกะ [สุดเจ๋ง] ขอบอก
ตอบกลับ: 10
แสดง: 108337

[TR]โปรแกรมเขียนไทยแปลเป็นภาษาคาราโอเกะ [สุดเจ๋ง] ขอบอก

รูปภาพ

พิมพ์ไทยช่องบนช่องข้างล่างก็จะออกมาเป็นภาษาคาราโอเกะให้เราเลยง่ายมากครับ
ลิ้งดาวน์โหลด
http://adf.ly/I7454

ใช้พิมพ์จีบสาวลาวก็ได้เรื่องนะผมลองแล้ว

หน้ารวมดาวน์โหลด
http://www.mindphp.com/download.html
โดย mindphp
10/08/2017 12:12 pm
บอร์ด: Programming - C/C++ & java & Python
หัวข้อ: อยากจะเเบ่งอักษรตามจำนวนทำยังไงได้บ้างค่ะ
ตอบกลับ: 1
แสดง: 40

Re: อยากจะเเบ่งอักษรตามจำนวนทำยังไงได้บ้างค่ะ

a = 'kkkkkkkkkk'
aa = a[0:4]
ตัวตัดไปก็ตัดเพิ่มเข้าไป a[5:9]

้ถ้าทำภาษาไทยตัดแบบเนียนๆ
import deepcut
deepcut.tokenize('ฉันจะไปโรงเรียน')
# output as ['ฉัน', 'จะ', 'ไป', 'โรง', 'เรียน']
โดย Ik Kat
10/08/2017 11:35 am
บอร์ด: Programming - PHP
หัวข้อ: รบกวนหน่อยค่ะ พอดีต้องเขียน php แบบเลือกบริษ
ตอบกลับ: 1
แสดง: 53

Re: รบกวนหน่อยค่ะ พอดีต้องเขียน php แบบเลือกบริษ

ถ้าต้องการแสดงผลรวม แล้วแยกเป็น 9 ประเภท
ลองสร้างเงื่อนไขให้กับผลรวม โดยเงื่อนไขก็กำหนดตาม odertype อาจใช้เป็น switch...case ก็ได้ค่ะ
เช่น ถ้าผลรวมน้อยกว่าหรือเท่ากับ 1000 กำหนดให้เป็น odertype ประเภทที่ 1
โดย thelordbank
02/08/2017 6:55 pm
บอร์ด: Programming - C/C++ & java & Python
หัวข้อ: ลองทดสอบรันโค้ดตามบทเรียนเรื่อง Flask แล้วเกิด Error ครับ
ตอบกลับ: 2
แสดง: 62

Re: ลองทดสอบรันโค้ดตามบทเรียนเรื่อง Flask แล้วเกิด Error ครับ

ได้แล้วครับโฟลเดอร์ template ต้องใช้ชื่อว่า templates ครับ ขอบคุณมากครับ
โดย nuattawoot
02/08/2017 6:35 pm
บอร์ด: Programming - C/C++ & java & Python
หัวข้อ: ลองทดสอบรันโค้ดตามบทเรียนเรื่อง Flask แล้วเกิด Error ครับ
ตอบกลับ: 2
แสดง: 62

Re: ลองทดสอบรันโค้ดตามบทเรียนเรื่อง Flask แล้วเกิด Error ครับ

มันบอกว่า ไม่เจอไฟล์ Template : index.html ชื่อโฟลเดอร์ template ถูกปล่าว
โดย pnut
16/08/2016 11:57 am
บอร์ด: SQL Knowledge
หัวข้อ: ภาษา DDL คืออะไร - Data Definition Language
ตอบกลับ: 0
แสดง: 200

ภาษา DDL คืออะไร - Data Definition Language

ภาษา DDL (Data Definition Language) หรือภาษาสำหรับจัดการ และนิยามโครงสร้างของฐานข้อมูล เป็นภาษาที่มีไว้สำหรับจัดการฐานข้อมูลโดยเฉพาะไม่ว่าจะเป็นการ สร้างฐานข้อมูล, แก้ไข หรือลบฐานข้อมูล โดยในภาษา DDL นั้นประกอบไปด้วยภาษาคำสั่งต่าง ๆ ดังนี้

:mrgreen: 1. CREATE คือคำสั่งสำหรับการสร้างนิยาม หรือสร้างฐานข้อมูลนั้นเอง หากเราต้องการสร้างฐานข้อมูล เราสามารถใช้รูปแบบคำสั่งได่ดังนี้

Code: เลือกทั้งหมด

CREATE TABLE <ชื่อตารางข้อมูล>
(
<ชื่อ Field> <ชนิดข้อมูล (ขนาดข้อมูล)>,
<ชื่อ Field> <ชนิดข้อมูล (ขนาดข้อมูล)>
)

:mrgreen: 2. ALTER คือคำสั่งในการแก้ไขโครงสร้างของตารางข้อมูล เช่น เราต้องการแก้ไข ชื่อ Field หรือแก้ไของค์ประกอบต่าง ๆ ของตารางข้อมูล มีคำสั่งโดยย่อดังนี้

Code: เลือกทั้งหมด

ALTER TABLE <ชื่อตารางข้อมูล> DROP COLUMN <ชื่อ Field>
ALTER TABLE <ชื่อตารางข้อมูล> ADD COLUMN <ชื่อ Field><ชนิดข้อมูล (ขนาดข้อมูล)>

:mrgreen: 3. DROP คำคำสั่งสำหรับลบตารางข้อมูล มีคำสั่งโดยย่อดังนี้

Code: เลือกทั้งหมด

DROP TABLE <ชื่อตารางข้อมูล>

ทั้งหมดคือความหมาย และคำสั่งในกลุ่มภาษา DDL (Data Definition Language) ซึ่งในบทความนี้จะไม่เน้นในส่วนของคำสั่งมากนัก เพราะอยากให้ผู้อ่านได้เรียนรู้ความหมายเบื้องต้น และคำสั่งโดยย่อเพียงเท่านั้นครับ
โดย M033
28/01/2016 11:13 am
บอร์ด: Software testing
หัวข้อ: การทำ EasyTest ด้วย JUnit
ตอบกลับ: 0
แสดง: 242

การทำ EasyTest ด้วย JUnit

ในการเขียน test ด้วย #junitนั้นมี feature ต่างๆ ที่น่าสนใจหลายๆ ตัว หนึ่งในนั้น คือ การใช้ @Repeat และ @Duration สำหรับการวน loop เพื่อทำการเรียกแต่ละ test case ซ้ำๆ ซึ่งถูกใช้งานรวามกับการทำ Data-Driven testing เสมอ โดยสามารถนำไปประยุกต์ใช้สำหรับทำ Load testing ได้อีกด้วย
และ #EasyTestนั้นยังมีความสามารถอื่นๆ อีก เช่น
    -อ่านข้อมูลจากไฟล์ Microsoft Excel, JSON, XML
    -การใช้งานผ่าน Dependency Injection
    -การแสดงรายงานการทดสอบ
    -ทดสอบแบบคู่ขนาน
    -สามารถใช้ร่วมงานกับ Spring framework
มาดูตัวอย่างการใช้งาน EasyTest
การใช้งาน module ที่ชื่อว่า EasyTest นั้นเราสามารถกำหนดค่าต่างๆ ดังนี้ได้
    -ชื่อไฟล์ข้อมูลที่นำมาทดสอบ ( DataLoader )
    -จำนวนรอบการวนซ้ำ ( Repeat )
    -เวลาการทำงานสูงสุดในแต่ละ test case ( Duration ) ถ้าทำงานเกินเวลาที่กำหนด test case จะ fail
ขั้นแรกทำการเพิ่ม dependency ของ EasyTest เข้าไปใน pom.xml ของ maven project

Code: เลือกทั้งหมด

<dependency>
   <groupId>org.easetech</groupId>
   <artifactId>easytest-core</artifactId>
   <version>1.2.5</version>
</dependency>

ทำการสร้าง test case โดยต้องการให้วนทำงาน 5 รอบ ด้วยการใช้ @Repeat และใช้ข้อมูลจากไฟล์ data.csv ดังนี้

Code: เลือกทั้งหมด

@RunWith(DataDrivenTestRunner.class)
public class WithoutLoopTest {

   @Test
   @DataLoader(filePaths = { "data.csv" })
   @Repeat(times=5)
   public void testUseRepeat10Times(@Param(name="ID") int id,  @Param(name="Name") String name) throws Exception {
      System.out.println("Test=" + id);
   }
}

คำอธิบาย

    -ใน test case ชื่อว่า testUseRepeat10Times นั้นจะเรียกใช้ข้อมูลมาทดสอบจากไฟล์ test.csv ซึ่งข้อมูลประกอบไปด้วย ID และ Name
    -ทำการวนทดสอบจำนวน 5 รอบ

ข้อมูลในไฟล์ data.csv

Code: เลือกทั้งหมด

testUseRepeat10Times,ID,Name
,1,Name 1
,2,Name 2

โดยโครงสร้างของไฟล์ data.csv ประกอบไปด้วย

    -แถวที่ 1 ประกอบไปด้วย ชื่อของ method ที่ใช้งาน, ชื่อ column ที่ 1 และชื่อ column ที่ 2
    -ตั้งแต่แถวที่ 2 ขึ้นไปนั้นคือข้อมูลที่จะถูกใช้งาน
เมื่อทำการ run test พบว่ามีการทำงาน 10 ครั้ง มาจาก จำนวนข้อมูล X จำนวนรอบที่กำหนดไว้ใน @Repeat คือ 2X5 = 10 ดังรูป
    Screen Shot 2556-10-20 at 10.50.40 PM.png

ต่อมาทดสอบใช้ @Duration มาเพื่อกำหนดให้เวลาการทำงานสูงสุด 10 milisecond ดังนี้

Code: เลือกทั้งหมด

@Duration(timeInMillis=1)
public void testUseRepeat10Time ....
...

ถ้า test case นั้นทำงานเกินเวลาที่กำหนด จะเกิด error หรือ failure ดังรูป
Screen Shot 22.png

เพียงเท่านี้ เราสามารถทำ Data-Driven testing และการวน loop โดยไม่ต้องเขียน loop ด้วย module EasyTest ได้แล้วครับ

แหล่งที่มา: http://www.narisa.com/forums/index.php? ... entry=2990
โดย jay_limm
04/06/2014 2:10 pm
บอร์ด: Software testing
หัวข้อ: วิธีการทดสอบ (white box, black box) Software Testing
ตอบกลับ: 1
แสดง: 7621

วิธีการทดสอบ (white box, black box) Software Testing

วิธีการทดสอบจะเแบ่งออกเป็น 2 วิธีคือ
- Functional testing (Black box testing)
- Structural (White box testing)


-----------------------------------------------------------------------------------------------------------------------------------
Functional testing (Black box testing)
จะมองทั้งระบบเป็นเหมือน กล่องดำ(black box) ไม่สนใจว่าการทำงานภายในเป็นอย่างไร เช่น การทำงานของเครื่องจักร
โดยเราแค่ป้อนคำสั่งให้เครื่องจักร แล้วดูว่าเครื่องจักรทำงานถูกต้องหรือไม่ โดยที่ไม่สนใจกระบวนการ
ทำงานว่าข้างในทำอะไรบ้าง เป็นต้น
ส่วนการสร้างกรณีทดสอบจะต้องใช้เอกสารกำหนดคุณลักษณะความต้องการใช้งานซอฟต์แวร์(Requirement specification)


05.PNG


ข้อดีของการทดสอบแบบ functional Testing คือ
- กรณีทดสอบจะไม่ขึ้นกับวิธีการสร้างซอฟต์แวร์ แม้ว่าจะมีการเปลี่ยนแปลงขั้นตอนการทำงานภายใน แต่กรณีทดสอบ
ก็ยังสามารถใช้ได้อยู่
- สามารถออกแบบกรณีทดสอบไปพร้อมๆกับการพัฒนาซอฟต์แวร์ได้ ทำให้ลดเวลาโดยรวมของการพัฒนาซอฟแวร์ลงไปได้

ข้อด้อยของการทดสอบแบบ functional Testing คือ
- กรณีทดสอบอาจมีการซ้ำซ้อนกันได้ โดยอาจจะไปทดสอบซ้ำกับการทำงานเดิมภายใน black box ทำให้เสียเวลา
โดยเปล่าประโยชน์
- การทดสอบอาจจะไม่ครอบคลุมการทำงานทั้งหมดภายใน black box อาจมีช่องว่าที่ไม่ได้ทดสอบโดยที่เราไม่รู้


-----------------------------------------------------------------------------------------------------------------------------------

Structural testing(White box testing)
การทดสอบแบบ white box นั้นจะต้องรู้ว่าซอฟต์แวร์สร้างขึ้นมาอย่างไร และใช้การทำงานนั้นสร้างกรณีทดสอบขึ้นมา
โดยจะต้องกำหนดกรณีทดสอบตามขั้นตอนการทำงานของฟังก์ชันที่สร้างขึ้นมาจริงๆ

-----------------------------------------------------------------------------------------------------------------------------------
การเปรียบเทียบการทำงาน
ทั้งการทดสอบแบบ Black box และ White box มีวัตถุประสงค์เพื่อสร้างกรณีทดสอบขึ้นมาทดสอบซอฟต์แวร์
ในส่วนของ Black box จะอาศัยข้อมูลจาก requirement specification เพียงอย่างเดียวในการสร้างกรณีทดสอบ
ส่วนการทดสอบแบบ White box นั้น จะอาศัยขั้นตอนการทำงาน ของซอฟต์แวร์ หรือ source code เพียงอย่างเดียว
ในการสร้างกรณีทดสอบ ดังนั้นเราจะต้องใช้การทดสอบทั้ง 2 วิธีร่วมกัน เช่น

>> ถ้าเราใช้การทดสอบแบบ White box เพียงอย่างเดียวเราก็จะไม่รู้ว่าเราพัฒนาฟังก์ชันต่างๆ ตาม
requirement specification ครบแล้วหรือไม่ และไม่สามารถบอกได้ว่ายังมี requierment specification ส่วนไหนที่ยังไม่ได้พัฒนา

>> ถ้าเราใช้การทดสอบแบบ Black box เพียงอย่างเดียว ในกรณีที่มีการสร้างฟังก์ชันที่นอกเหนือไปจากที่กำหนดไว้ใน
requirement specification จะไม่สามารถบอกได้ว่าสร้างฟังก์ชันที่นอกเหนือกับที่กำหนดไว้
โดย thatsawan
25/06/2017 11:05 pm
บอร์ด: ถาม - ตอบ คอมพิวเตอร์
หัวข้อ: จะสร้างไฟล์ .csv จากฟรีโปรแกรมอะไรได้บ้างค่ะ (ไม่มี excel)
ตอบกลับ: 2
แสดง: 77

Re: จะสร้างไฟล์ .csv จากฟรีโปรแกรมอะไรได้บ้างค่ะ (ไม่มี excel)

ลากไฟล์ CSV ไปวางใน google drive เท่ากับ import ก็สามารถเปิดได้ใน google sheet
โดย thelordbank
05/08/2017 6:53 pm
บอร์ด: พูดคุยเรื่องทั่วไป จับฉ่าย
หัวข้อ: Google Trips แอพพลิเคชั่นสำหรับคนชอบท่องเที่ยว
ตอบกลับ: 0
แสดง: 52

Google Trips แอพพลิเคชั่นสำหรับคนชอบท่องเที่ยว

ในสมัยนี้ ทุกๆคน เวลาเราเดินทางไปไหนมาไหน ส่วนใหญ่หลายๆคนคงไม่ได้เดินทางกับทัวร์แล้ว โดยเฉพาะวัยรุ่น วัยทำงาน ส่วนใหญ่เวลาไปเที่ยวที่ไหน ไม่ว่าจะต่างประเทศหรือต่างจังหวัด ก็จะแพลนทริปกันเอง ไปกันเอง จองรอบบินเอง จองรถทัวร์เอง จองโรงแรมเอง ทีนี้ปัญหาก็จะเกิดอยู่ตรงที่ว่า ถ้าเราจะทำการเช็คข้อมูลตั๋ว อัพเดทสถานะของตารางเที่ยวบิน หรือตารางรถทัวร์ บางทีเราจะต้องโหลดแอพมาไว้หลายแอพกันเลยทีเดียว

รูปภาพ

Google Trips เป็นแอพพลิเคชั่นที่รวมทุกสิ่งทุกอย่างไว้ เพื่อให้คุณสามารถจัดการบุ๊คกิ้งโรงแรม เช็ครอบเที่ยวบิน เช็ครอบรถไฟ (ถ้าในต่างประเทศคุณยังสามารถเช็ครอบของรถบัสได้อีกด้วย) เรียกได้ว่ามีแอพเดียว จัดการคุณได้หมดทุกอย่างทั้งการเดินทาง และที่พักเลยทีเดียว
ถ้าใครสนใจอยากลองใช้ Google Trips สามารถดาวน์โหลดได้ฟรีที่ Play Store สำหรับระบบ Andriod หรือสามารถดาวโหลดจาก App Store สำหรับระบบ IOS
โดย bellzeed
27/06/2017 2:12 pm
บอร์ด: ถาม - ตอบ คอมพิวเตอร์
หัวข้อ: ส่วนประกอบและคุณสมบัติของ Raspberry Pi 2 Model B
ตอบกลับ: 0
แสดง: 123

ส่วนประกอบและคุณสมบัติของ Raspberry Pi 2 Model B

Raspberry Pi คือ เครื่องคอมพิวเตอร์ขนาดจิ๋วที่มีขนาดเพียงเท่ากับบัตรเครดิต เจ้าราสเบอร์รี่พายนี้มีราคาที่ถูกมากๆ เมื่อเทียบกับคอมพิวเตอร์เดสก์ท็อปปกติ คือมีราคาเพียงแค่หนึ่งพันกว่าบาทเท่านั้นเอง!!! ทำงานได้เหมือนเครื่องคอมพิวเตอร์ทุกอย่างเลย เจ้าราสเบอร์รี่พายรองรับ HDMI,เมาส์และคีย์บอร์ดผ่าน USB port ปกติ

Raspberry Pi 2 Model B.png


ส่วนประกอบ Raspberry Pi 2 Model B
หน่วยประมวลผล (CPU) Broadcom BCM2836 900 MHz, Quad-core)
กราฟฟิก (GPU) Broadcom VideoCore IV
แรม (RAM) 1 GB
หน่วยความจำ (Storage) 64 GB SD Card (ขึ้นอยู่กับ SD card ที่ใช้)
Video Output HDMI, Composite RCA
Audio Output Yes
Ethernet Yes
USB 2.0 Yes ( 4 Port)
ระบบปฎิบัติการ (OS) Windows/Linux
ขนาด 8.6×5.4×1.7 ซม.

หลักการทำงานของอุปกรณ์แต่ละชิ้น

GPIO.png

จุดเชื่อมต่อ GPIO
- เชื่อมต่อกับบอร์ด Raspberry Pi ผ่านทางคอนเน็กเตอร์ GPIO 40 ขา
- มีจุดต่อพอร์ต GPIO 40 ขาครบทุกขาเป็นแบบ IDC ตัวผู้ระยะห่างระหว่างขา 2.54 มม.
- มีจุดต่อแบบ JST 2 มม. 3 ขา จำนวน 10 ขา ประกอบด้วย GPIO2/SDA, 3/SCL, 4/1-Wire, 5, 14/TxD, 15/RxD, 24, 25, 26 และ 27
- มีสวิตช์กดติดปล่อยดับพร้อมใช้งานต่อกับขา GPIO13
- มีสวิตช์แบบจอยสติ๊ก 4 ทิศทางและปุ่มกดกึ่งกลาง ต่อกับขา GPIO6, 17, 18, 22 และ 23
- มีจอแสดงผล OLED 0.96 นิ้ว ความละเอียด 128x64 จุด ใช้การเชื่อมต่อแบบบัส I2C
- มี LED 3 สี RGB แบบอนุกรมและโปรแกรมได้ เบอร์ WS2812B ต่อกับขาพอร์ต GPIO12
- ขนาด 65 x 56 มม. โดยออกแบบรูปร่างของแผ่นวงจรพิมพ์ ให้มีขนาดระยะห่างของรูยึดช่องว่างต่างๆ เป็นไปตามข้อกำหนดของการออกแบบบอร์ด HAT ของ Raspberry Pi Foundation


Port USB.png

จุดเชื่อมต่อ Port USB
- ใช้สำหรับหรือช่องทางในการเชื่อมต่อและสื่อสารระหว่างคอมพิวเตอร์กับ อุปกรณ์ภายนอกอื่นๆ


Audio &amp; Vidio.png

ช่อง Audio/Vidio
- Audio Output อยู่ 2 ช่องด้วยกันคือผ่านทางช่อง HDMI และแจ๊ค 3.5mm ที่เป็นทั้ง Stereo Audio และ Composite Video โดยบอร์ด Raspberry Pi จะเลือกให้โดย อัตโนมัติว่าจะใช้งานช่องไหน


Lan internet.png

จุดเชื่อมต่อ LAN/ Internet
- ในการเชื่อมต่อ Internet


CSI Camera.png

จุดต่อกล้องแบบ CSI (Camera Serail interface)
- พอร์ต CSI (Camera Serial Interface) ใช้สำหรับเชื่อมต่อโมดูลกล้อง


HDMI.png

จุดเชื่อมต่อ HDMI
- ใช้สำหรับเชื่อมต่อกับจอแสดงผล หากเลือกใช้จอ Monitor ที่ไม่มีพอร์ต HDMI รองรับต้องใช้ตัวแปลง HDMI to VGA ด้วย หรือเชื่อมต่อสายวีดีโอ RCA ก็ได้เช่นเดียวกัน (เลือกอย่างใดอย่างหนึ่ง)


ช่องจ่ายไฟด้วย Micro USB.png

ช่องจ่ายไฟด้วย Micro USB Power
- ทำหน้าที่เพื่อจ่ายไฟเลี้ยงให้กับวงจร สามารถเลือกใช้แหล่งจ่ายไฟจากพอร์ต USB ของเครื่องคอมพิวเตอร์ได้


ช่องเสียบ SD Card2.png

ช่องเสียบ SD card
- ตัวนี้จะอยู่ด้านหลังของบอร์ดใช้สำหรับติดตั้งระบบปฏิบัติการ Linux ต้องมีความจุมากกว่า 2GB ขึ้นไป แต่แนะนำให้ใช้ ขนาด 4GB หรือมากกว่า


DSI Display connector.png

พอร์ต DSI (Display Serial Interface)
- ใช้สำหรับต่อจอแสดงผล เช่น จอแสดงผลแบบ TFT Touch Screen เป็นต้น
โดย bellzeed
04/07/2017 10:41 am
บอร์ด: ถาม - ตอบ คอมพิวเตอร์
หัวข้อ: RPi ติดตั้งระบบปฎิบัติการลง Micro SD card
ตอบกลับ: 0
แสดง: 71

RPi ติดตั้งระบบปฎิบัติการลง Micro SD card

เปนที่ทราบกันวาบอรด Raspberry Pi นั้นไมมีหนวยความจําประเภท Flash Memory หรือ Hard Disk Drive อยูบนบอรด ทําใหเวลาที่เราจะติดตั้งระบบปฏิบัติการ (Operating System : OS) เราตองติดตั้งระบบปฏิบัติการตางๆ ไวใน Micro SD Card เพื่อให้บอร์ด Raspberry Pi สามารถทำงานได้ครับ

ทำการดาวโหลดระบบปฎิบัติการ
ดาวโหลดไฟล์อิมเมจจาก http://www.raspberrypi.org/downloads/ แล้วเลือก Raspbian
การเลือก_015.png


เมื่อดาวโหลดเสร็จเรียบร้อยแล้ว ให้ทำการแตกไฟล์ จะได้ไฟล์อิมเมจ (.img) ดังรูป
ไดหหกหดห.png


จากนั้น ดาวโหลดโปรแกรม Win32DiskImager ครับ
https://sourceforge.net/projects/win32diskimager/
555555.png


แตกซิปไฟล์ และติดตั้งโปรแกรม Win32DiskImager แล้วก็ติดตั้งโปรแกรมแกรมครับ
6666666.png


ใส่ SD card เข้ากับเครื่องคอมพิวเตอร์หรือ card reader เปิดโปรแกรม Win32 Disk Imager
เลือก Dive เป็นไดรฟ์ของ Micro SD card ที่ช่อง Image File ให้เลือก OS ที่เราจะทำการติดตั้งใน Micro SD card โดยคลิ๊กที่รูปแฟ้มสีน้ำเงิน
777777.png


กดปุ่ม Write เพื่อติดตั้ง OS ลง Micro SD card แล้วกด YES เพื่อยืนยัน
888888.png



ข้อมูลอ้างอิง
https://www.raspberrypi.org
https://sourceforge.net
http://doc.inex.co.th/
โดย bellzeed
07/07/2017 3:48 pm
บอร์ด: ถาม - ตอบ คอมพิวเตอร์
หัวข้อ: Set เวลาให้ RPi แล้ว reboot แต่เวลาไม่เปลี่ยนเป็นเวลาปัจจุบัน
ตอบกลับ: 0
แสดง: 79

Set เวลาให้ RPi แล้ว reboot แต่เวลาไม่เปลี่ยนเป็นเวลาปัจจุบัน

รบกวนสอบถามหน่อยครับ ตัว Raspbery Pi model B เซตเวลาให้กับตัวเครื่องเรียบร้อยแล้ว reboot เรียบร้อย แต่ก็ยังเป็นเวลาที่มันไม่ตรงกับเวลาปัจจุบัน ต้องทำอย่างไรครับ หรือมีวิธีแนะนำไหมครับ
การเลือก_001.png
โดย nuattawoot
06/07/2017 7:08 pm
บอร์ด: ถาม - ตอบ คอมพิวเตอร์
หัวข้อ: การแก้ปัญหา Ubuntu 16.04 เปิด Wifi ไม่ได้ (ASUS)
ตอบกลับ: 3
แสดง: 126

Re: การแก้ปัญหา Ubuntu 16.04 เปิด Wifi ไม่ได้ (ASUS)

วิธีแก้ นะครับ
ขั้นตอนที่ 1 พิมโค๊ดตามนี้

Code: เลือกทั้งหมด

lspci -nnk | grep -A2 0280

จะได้หน้าตาแบบนี้

Code: เลือกทั้งหมด

Code:
ubuntu:~$ uname -mr
3.11.0-12-generic x86_64

ubuntu:~$ lspci -nnk | grep -A2 0280
03:00.0 Network controller [0280]: Qualcomm Atheros AR9485 Wireless Network Adapter [168c:0032] (rev 01)
    Subsystem: AzureWave Device [1a3b:2c97]
    Kernel driver in use: ath9k

-------------------------------------------ERROR---------------------------------------------
ถ้าไครError หรือไม่เหมือนของผม เช่น
error blacklist.conf Line 56 แจ้งประมาณว่า ไม่เจอ bkacklist หรือ bkacklist ผิด
ให้ทำการเข้าไปแก้ bkacklist ให้เป็น blacklist โค๊ดมันผิดที่ตัว K

Code: เลือกทั้งหมด

sudo nano /etc/modprobe.d/blacklist.conf

เสร็จแล้วให้เซฟ
ต่อไปขั้นตอนที่ 2

Code: เลือกทั้งหมด

echo "blacklist acer_wmi" | sudo tee -a /etc/modprobe.d/blacklist.conf

เสร็จแล้ว รีเครื่อง 1 ครั้ง หรือใช้คำสั่ง

รีแล้วให้ทำการเช็ค wifi

Code: เลือกทั้งหมด

rfkill list
lsmod | grep acer

แค่นี้ก็ใช้ได้แล้วครับลองทำตามดูครับ
error.png
โดย mindphp
03/08/2017 2:44 pm
บอร์ด: Joomla Development
หัวข้อ: เราจัดเก็บข้อมูล ใน mjform แล้วต้องการแสดงผลข้
ตอบกลับ: 4
แสดง: 78

Re: เราจัดเก็บข้อมูล ใน mjform แล้วต้องการแสดงผลข้

เวอร์ชั่นฟรี
สามารถ export และอัพโหลด ขึ้นเว็บเป็น HTML ได้ครับ