Wednesday, September 14, 2011

Selenium Remote Control ба PHPUnit_Selenium суулгах талаар


Selenium Remote Control (RC) бол HTTP вебсайт дээр өөрийн дурын хэл дээр бичигдсэн веб програмаа шалгаж үзэх автомажсан хэрэгсэл юм.
Selenium RC 2 хэсэгтэй. 
  1. Сервэр автоматоор ажилах ба бравузаруудыг ажилгааг зогсоож веб хүсэлтэд HTTP proxy шиг хариулах.
  2. Таны дуртай прорамчлалын хэлний Клэйнт сан.
Доор зураг энгийн бүтэц нь....
rc arch diagram
phpunit_selenium суулгахын тулд дараах коммандыг ажлуулна.
pear install PHPUNIT/PHPUnit_Selenium
Хэрэв php_curl функтай холбоотой алдаа гарвал php.ini file доторх php_curl(); ийг идэвхжүүлээрэй мөн apacha сервэр хэрэглэж байгаа бол bin/php.ini файлд өөрчлөлт хийхээ мартваа. Зарим тохиолдолд php_curl ийг идэхвжүүлсэн алдаа гарсаар байдаг энэ тохиолдолд openssl ийг гүүглэдэж олоод задалж үзвэл lib/ssleay32.lib, lib/libeay32.lib гэж 2 файл байгаа үүнийг windows/system32 луугаа хуулаад системээ ахиж ачаалуулааад php.ini файлаа дахин өөрчлөөрэй. Сервэрээ бас дахин ачааалахаа битгий мартаарай.

Wednesday, August 17, 2011

PHPUnit ийг WAMP болон Windows ийн орчинд суулгах



  1.  WAMP аа татаад суулгана
  2. CMD гээ нээгээд дараах замыг зааж өгнө
    C:\>cd wamp\bin\php\php5.2.5
  3.   PEAR суулгахын тулд  go-pear.bat файлыг ажлуулна
    C:\wamp\bin\php\php5.2.5>go-pear.bat
  4. Файлыг ажлуулсаны дараа нилээд хэдэн асуултыг асууна. Хэрэв та энэ талаар мэдлэг бага бол дифолт байдлаар үргэжлүүлж болно.
  5. Суулгалт амжилттай болсоны дараа PEAR коммандыг дурын замаас дуудаж ажлуулахын тулд PEAR_ENV.reg файлыг ажлуулаж тухайн хэрэглэгчийн environment variable -д нэмнэ
    C:\wamp\bin\php\php5.2.5>PEAR_ENV.reg
    Хэрэв ямар нэг алдаа гарвал гараараа нэмж өгөөрэй.
  6. Үүний дараа PEAR лээ  PHPUnit холбож өгнө
    C:\wamp\bin\php\php5.2.5>pear channel-discover pear.phpunit.de

     Хэрэв шаардлагтай бол ( C:\wamp\bin\php\php5.2.5> pear channel-discover pear.symfony
    -project.com )


  7. Дараа нь PHPUnit ээ суулгана
    C:\wamp\bin\php\php5.2.5>pear install phpunit/PHPUnit
  8. Хэрэв дээрх коммандад ямар нэг алдаа гарвал  дараах коммандыг ажлуулаад үзээрэй
    C:\wamp\bin\php\php5.2.5>pear upgrade pear

Wednesday, August 10, 2011

MongoDB өгөгдлийн сангын талаар

MongoDB сүүлийн хэдэн сар сонирхосны эцэст. Энэ талаар мэдэлгээ хуваалцхаар шийдлээ.
Юуны өмнө MongoDB бол бичиг баримт дээр тулгуурласан өгөгдлийн сан юм. Хөгжүүлэгч нь 10gen (http://www.10gen.com) ба С хэл дээр бичигдсан нээлттэй өгөгдлийн сан. За дараах линкээр орж татаж авч болно https://github.com/mongodb/mongo . Ерөнхийдөө бол сурхад нилээд хялбар өгөдлийн сан бараг дурын sql өгөдлийн сангаас амархан гэж байгаа. Бага зэргийн хүндэрэл нь график дээр суурилсан өгөгдлийн сан хэрэглэж байгаад халтираад mongodb руу ороход ялгүй хүндрэл гараад байгаа юм. MongoDB хэрэглэвэл таньд өгөдлийн сандаа өгөдлөө хадаглахаасаа өмнө өгөгдлийн сангийн бүтэцийг зохион байгуулах шаардлаггүй нилээд уюн хатан өгөгдлийн сан юм. Хамгийн гол нь асар том өгөдлийн сан байлаа ч хурд  бол гайхалтай :))
Дараах жишээ бол миний яриад байгаа mongodb ийн энгийн жишээ:

{  
 _id : ObjectId("4db31fa0ba3aba54146d851a")  
 username : "joegunchy"  
 email : "joe@mysite.org"  
 age : 26  
 is_admin : true   
created : "Sun Apr 24 2011 01:52:58 GMT+0700 (BDST)" 
}



Бага зэргийн тайлбар хийе. Энэ файл 6 талбартай, ерөнхийдөө бол javascript ийн бага зэргийн мэдлэгтэй бол json бүтэцтэй байгаа хараал ойлгож байгаа байх.Хамгийн эхний талбар бол _id автоматоор үүсдэг, нэг ёсондоо обьектын түлхүүр үг бас давтагдахгүй цор ганц байна. Өөрөөр хэлбэл нэг өгөдлийн санд ижилхэн файл байж болохгүй юм. Бусад талбар бол ойлгомжтой string, integer, boolean, datetime төрөлтэй өгөгдөлүүд байна.

Monday, August 1, 2011

Тайлбар

Нилээд хэдэн сар блог руугаа орсонгүй. Ойрын хэдэн сарууддаа идэвхтэй хөтөлнө өө. Ерөнхийдөө миний бичих сэдэв Yii framework, mongoDB, parallel programming болон түүнтэй холбоотэй эх холбогдолтой сэдэвээр бичихийг зорих болно.

Sunday, February 20, 2011

Р.Чойном - Уур минь хүрч байна

 
Санаанаас гарамгүй есөн жил минь
Сахалт Чойномгоо битгий мартаарай
Үхсэн хүнд нэхэж ологдог
Үнэгүй алдар, үнэгүй магтаал хэрэггүй
Үнэн хэрэгтэй
Цэцэнүүдийн дунд тэнэг явахад
Цэнгэл жаргал элбэг олдох юм
Тэнэгүүдийн дунд цэцэн байхад
Тэрнээс илүү зовлон алга даа
Яаж болохгүй залхуу энэ орчлонд
Яарахаа мэдсэн юм бол яах гэж би эрт төрөө вэ?
Сэргэлэн цовоо явахад хад чулуу хүртэл дуулна
Сэтгэл эмзэглээд ирэхээр гитар хүртэл уйлна
Өнгөтэй өөдтэй явахын цагт бусдын эхнэр ч дагана
Өвдөж зовохын цагт бурхан хүртэл зугтаана
Зугаалж цэнгэж явахад зуун түмэн нөхөдтэй байлаа
Зуурдын зовлонд унахад зуух олон ноходтой болох юм
Уурлаж байна би уурлаж байна
Унаган насаа ахих бүр
Улсын мунхагыг ажих бүр
Уур минь аяандаа асаж байна
Эхээс би уургүй төрсөн
Эр биеийг үзтэл уургүй явсан
Эгэл гүн ухаантныг ойлготлоо уургүй явсан
Эцэст нь уурын тулам боллоо
Уурыг би эцэг дээдсээсээ аваагүй
Урлаггүй эхнэр Эрдэмаагаас аваагүй
Улаан цэргийн муйхар Чпайяаваас ч аваагүй
Уур минь аяандаа үүсэн гарлаа
Хадсан өвс дарагдаж ялзараад
Халуун дундаасаа түймэр гардаг
Хамаг ард та нартаа
Бие хайргүй хураасан
Хадлангын минь дээрээс дараад шатаалаа
Овоолсон нүүрс нар бол өөрөө шатна
Олон түмэн эх ороноо дулаацуулах гэж
Олж хураасан нүүрсэнд ус хийгээд шатаалаа
Уур минь шатаж байна
Улаан тугаас үнэтэй амь
Улаан зүрх минь шатаж
Уужим дэлхийд би шатаж байна
Нэг даваанд өссөн үе чацуутан
Нэг тогоонд хоололсон ахан дүүс
Нэг зовлон үүрсэн ард түмэн
Нэг насандаа итгэсэн төр засаг
Алтыг ялж эгэл хүнийг үнэлэх
Асгаруулсан цусаараа ядуу ард байгуулсан
Атомын энэ зууныг хэн бүхэн мэднэм
Адгын томьёог нь мэдэхгүй уур минь хүрнэм

.......................................................................... 
 

Java г Oracle 10g ex edition тэй холбох

import java.sql.*;

public class OracleLoadDriver {

  public static void main(String[] args)
      throws ClassNotFoundException, SQLException
  {
    Class.forName("oracle.jdbc.driver.OracleDriver");
        String url = "jdbc:oracle:thin:@localhost:1521:xe";
           jdbc:oracle:thin:@host:port:SID
    Connection conn =
         DriverManager.getConnection(url,"bolortuul","boloroo");

    conn.setAutoCommit(false);
    Statement stmt = conn.createStatement();
    ResultSet rset =
         stmt.executeQuery("select * from userss");
    while (rset.next()) {
         System.out.println (rset.getString(1));
    }
    stmt.close();
  }
}

Jython ийг Oracle 10g ex edition тэй холбох

from oracle.jdbc import OracleDriver
from java.sql import DriverManager

def connect(un, pw, sid, host, port):
     driver = OracleDriver()
     DriverManager.registerDriver(driver)
     connection = "jdbc:oracle:thin:@%s:%s:%s" % (host, port, sid)
     conn = DriverManager.getConnection(connection, un, pw)
     return conn

def doStuff(conn):
     stmt = conn.createStatement()
     rset = stmt.executeQuery("SELECT * FROM userss")
     while (rset.next()):
         print rset.getString(1) # 1 dugeer baganiig hevlene
     stmt.close()


un = 'bolortuul' #hereglechiin ner oracleliin default admin ner "system" baidag. Ene nereer nevterj orood shine
                       #hereglech uusgej bolno
pw = 'boloroo' #nuuts ug
sid = 'xe' # database iin ner 10g ex edition-d default database "XE" nertei baidag ba ahij database uusgeh
               #bolomgui baidag
host = 'localhost'
port = '1521' # port 8080 baij bolno herev yamar neg alda garval start listener hiigeerei
conn = connect(un, pw, sid, host, port)
doStuff(conn)


Дараах кодыг ажлуулахдаа ojdbc14.jar файлаа СLASSPATH даа нэмэхээ мартваа.

Thursday, February 17, 2011

Чамайг зүрхнийхээ угт шигтгээд, би явлаа

Надаа хичнээн хэцүү байна гээч хайраа 
Тэвчих ёстой гэдгээ мэдэж байгаа хирнээ л тэсч чадахгүй байна 
Тэсвэрт хэмжээ байдаг гэж боддог байсан ч үгүй гэдгийг мэдлээ
Тэвчээрийн хэмжээнд баригдалгүй эцсээ хүртэл тэсэхийг л жинхэнэ тэвчээр гэдэг юм байна 
Гэвч би чадахгүй бололтой 
Цовоо сэргэлэн харагдаж байгаа ч сэтгэл доторх шаналалаа нууж цээжин дотроо шатаж байна 
Цоожтой авдар шиг дотроо хадгалсаар өөрийгөө мөс шиг хүйтэн гэж дүгнэхэд хүрлээ 
Одоо энэ хэвээрээ бгаад яах ч билээ 
Салах заяатайгаас хойш
Хүнээс юу үлддэг гээч 
Ердөө л сайхан дурсамж
Тиймээс одоо л эцэслэе 
Насан туршдаа дурслаа ч дуусамгүй хангалттай их дурсамж үлдээсэн чамдаа би хайртай
Дэндүү их хайртай дахиад хэнийг ч тэгж хайрлаж чадахгүй байх 
Миний сэтгэл зөвхөн чинийх 
Өөр хэнийх ч биш 
Цэцгийн цоморлиг мэт уруулыг нийлүүлэн
Зөгийн бал адил хэлийг шимэлцэн тэврэлдэн эрхэлдэг байснаа хэзээ ч мартахгүй
Чамайг зүрхнийхээ угт шигтгээд насан туршдаа чиний зүг тэмүүлж амьдрах болно

Python-iin List-iin talaar tovch

Onoodor anhniihaa post-oor Python-nii list-iin talaar tovch oilgot ogohiig zoriloo. Daraah code python deer bichegdsen baigaa. Ene mash engiin yorohiidoo hun bur l barag iim zagvaraar bichdeg.

>>> nums = range(10) 
>>> size = len(nums) 
>>> evens = [] 
>>> i = 0 
>>> while i < size:
            if i % 2 == 0: 
                  evens.append(i) 
                  i += 1
 Herev evens massiv-iig hevlevel ur dung ni: evens [0, 2, 4, 6, 8]

Gehdee deerh code Python-iig nileed udaan bolgoj ogch baina
  1. Davtalt bolgon deer undsen massiviin yamar heseg oorchlogdoj baigaag todorhoiloh neg ajliig bainga hiij baina.
  2. Tuhain massiviin elementiig bus tooluuriig davtalga bolgon deer shalgaj baigaa ni undsen massiviig neg l zagvart buya des daraalsan too esvel tooluuraas hamaarsan bolgoj ogch baina
Uunii hamgiin sain hariult bol LIST yum tuumii zagvar baij boloh yum. Deerh code-iig undsen Python zagvart oruulbal
>>> [i for i in range(10) if i % 2 == 0]
Mash baga mor code baigaa. Yor ni tom hemjeetei programm bichij baigaa bol ene ni baga aldaa garah tsaashdaa unshih, oilgohod mash hyalbar baih yum. Daraalliin gishuun buriig hevleh oor jishee avii . Code- iig daraah baidlaar bichij bolno.


>>> def _funck(pos, element): 
               return '%d: %s' % (pos, element) 
>>> seq = ["neg", "hoyor", "gurav"] 
>>> [_funck(i, el) for i, el in enumerate(seq)]
 ur dung: ['0: neg', '1: hoyor', '2: gurav']

Deerh code jijeg hemjeenii davtalt bolgon deer ajildag _funck nertei function ashiglasan baigaa. 
(for i, el in enumerate(seq) : tuhain i dugeer gishuunii utgiig el huvsagchid hadaglaj baina)