Two things are infinite: the universe and human stupidity; and I'm not sure about the universe ...
Albert Einstein

A computer would deserve to be called intelligent if it could deceive a human into believing that it was human ...
Alan Turing

Two things control men's nature, instinct and experience ...
Blaise Pascal


Во SoftwareMK
Во Најди!


Hits:
Virtual Macedonia 

Topsites


PageRank Checking Tool
 View My Public Stats on MyBlogLog.com
World Cup 

Counter


Powered by Blogger


View My Stats

Sunday, March 25, 2007

Мојата Топ 10 листа на совети

Секогаш е интересно да слушнеш или прочиташ различни размислувања, посебно ако се тоа ДА/НЕ, или ТРЕБА/НЕТРЕБА совети во кои некогаш ќе се препознаеш самиот себеси, а некогаш ќе најдеш критика за својот начин на работа, или пак едноставно нема да се согласиш со напишаното.

На Coding Horror блогот најдов интересен пост Top 6 List of Programming Top 10 Lists.

Посебно ми се допаѓа листата на Jery Weinberg, The 10 Commandments of Egoless Programming.

Базирана на моето скромно искуство, мојата Топ 10 листа на совети би изгледала вака:


  1. Критикувај го својот код. Самокритиката е доблест, а не маана.

  2. Не започнувај да работиш пред јасно да ги разбереш бизнис барањата (business requirements). Не започувај да работиш ако не знаеш што треба да направиш.
  3. Не започнувај да работиш, ако не знаеш како нешто да направиш.
  4. Тестирај пред да кажеш ДА! Мораш да имаш соодветна околина за тестирање. Истата треба да биде многу слична на продукцијската и да дозволува приближна процена на перформансите кога кодот би бил во продукција. Внимавај, перформансите на кодот не се исти кога истиот се извршува над 100 и над 100,000 записи во база. Перормансите на кодот не се исти кога на истиот пристапуваат 10, 100 или 1000 корисници.
  5. Дискутирај пред и за време на програмирањето!
  6. Примај совети од другите, немој да мислиш дека знаеш се!
  7. Copy+Paste Никогаш!!!
  8. Документирај го тоа што си го направил. Ако немаш соодветен софтвер за версионирање, прави бекап од секоја добра верзија на својот код.
  9. Никогаш не ја оставај идејата за утре. Утре, може да биде премногу доцна.
  10. KISS, Keep it Simple and Stupid


Поздрав!

Saturday, March 24, 2007

Oracle TimesTen 10 пати побрзо!

TimesTen е една од аквизициите кои Oracle ги направи не толку одамна (Јуни 2005).

TimesTen е база која комплетно е алоцирана во физичката меморија на серверот. Значи поентата е што повеќе да се елиминира I/O операциите со хард дискот.

За манипулација со податоците користи јазик базиран на SQL стандардите.

Главни компоненти во поглед на архитектурата се checkpoint file и log file. Кога се подига базата, целосната содржина на checkpoint датотеката се реплицира во физичката меморија.

Секоја трансакција се запишува во лог датотека, која периодично се користи за освежување на checkpoint датотеката. Ова значи дека во случај на ненадејно паѓање на системот трансакциите не се губат со губењето на физичката меморија. Кога системот ќе се подигне повторно и базата се стартира, TimesTen ја вчитува содржината на checkpoint датотеката и ги процесира трансакциите од лог датотеките кои не биле запишани во checkpoint датотеката во моментот на губењето на меморијата.

Нормално дека критична компонента на оваа база е checkpoint датотеката. Со нејзино губење се губат и податоците. Како превентива, TimesTen нуди опција за репликација податоците со што би се заштитиле истите во случај на оштетување на checkpoint датотеката.

TimesTen може да работи како самостојна база, или пак да претставува front-end кеш на голема Oracle база која работи во позадина.

Значи овој продукт нуди можност за употреба заедно со стандардна Oracle база. Со оваа солуција добивате робусно решение кое може во голема мерка да ги подобри перформансите на апликацијата.

Суштината на ваквото решение би била во кеширање на најмногу користените податоци со што би се намалило времето на извршување на query-јата.

Табелите кои сакате да ги кеширате ги сместувате во посебни кеш групи.

TimesTen нуди можност за делумно кеширање на податоците од една табела. Податоците во TimesTen се освежуваат со податоците од главната база синхроно или асинхроно. Постои и можност за on-demand освежување.

Но, сега би се поставило прашањето кои табели да се кешираат?

Мое мислење е да се кешираат табели чии податоци се воглавно read only или пак се "речиси" read only.

Зошто?

Ако сакате да кеширате голема табела врз која ќе извршувате комплесни query-ја, TimesTen нема да ви ги даде очекуваните перформанси. Имено, позади Oracle базата стои Oracle Optimizer кој ви помага да ги добиете вашите податоци на најбрз можен начин. TimesTen не е толку суфистицирана. На пример во случај на извршување на комплексно query кое што вклучува итеративно извршување на sub-query TimesTen најверојатно ќе го извршува sub-query-то за секој рекорд кој го враќа назад. Тоа води кон интензивно читање на меморијата кое во случај да sub-queryto процесира повеќе податоци, може многу да го успори вкупното извршување. Oracle CBO Optimizer-от би го процесирал sub-query-то само еднаш, без разлика дали главното query враќа 1, 100 или 100,000 рекорди. Во следниве денови планирам да направам неколку теста па ќе ви ги презентирам резултатите.

Мое мислење е дека TimesTen најкорисна би била за трансакции кои процесираат малку податоци со помош на едноставни query-ја. Кешираните податоци би требало да бидат read-only или "речиси" read-only. Секој обид за кеширање на големи бази со висок степен на I/O активности би довел до намалување на перформансите.

TimesTen би можела да се користи како меѓу-ниво помеѓу базата и апликацискиот сервер. Со мала измена на апликацијата, некои query-ја би пристапувале кон TimesTen, а други кон главната Oracle база.

Сешуте ја истражувам TimesTen, ако дојдам до некои интересни заклучоци сигурно ќе ги објавам.

За оние кои сакат да ја пробаат, TimesTen може да се симне од овде.

За повеќе информации, можете да ја посетите официјалната страница на Oracle TimesTen.

Sunday, March 18, 2007

Алатки без кои неможам...


Алатки без кои неможам да си го замислам работниот ден:


  1. Cygwin ја користам кога работам на оддалечени UNIX-базирани сервери. (Solaris, AIX, Red Hat Linux)

  2. PowerTerm ја користам како terminal server емулатор за работа со оддалечени OpenVMS сервери.

  3. VNC ја користам како terminal server емулатор за работа со оддалечени Windows сервери и десктоп компјутери.

  4. Telnet, денот ми почнува и завршува со Telnet.

  5. PL/SQL Developer, ја користев уште во Македонија како алатка за развој на PL/SQL код.

  6. SQL Developer ја користам за истата намена како и PL/SQL Developer. Оваа алатка е продукт на Oracle и е бесплатна. Плус ми се допаѓа работната околина е фактот дека е независна од системската платформа. Мислам дека е малку пофлексибилна од PL/SQL Developer.

  7. Oracle Enterprise Manager - Grid Control, за контрола и администрација на Oracle базите.

  8. SQL*Plus, ништо неможе да се спореди со слободата да се конектирате од било кој оперативен систем на било која база (нормално ако имате валидна мрежна конекција до серверот каде што се наоѓа базата)

  9. iSQL*Plus, малку покомплицирана Web варијанта на SQL*Plus, ми дава можност да се конектирам на било која база од било кој компјутер кој има пристап до интернет и нормално некаков пребарувач.


Wednesday, March 14, 2007

Среќен Pi-ден !!!

После подолг период еве ме повторно. Не кренав раце од блогосверата, едноставно некои активности имаа многу поголем приоритет и неможеа да бидат запоставени, така да ми остануваше многу малку слободно време. Морам да признаам дека понекогаш не помислував да го уклучам компјутерот (дома) дури неколку дена.

Инсталирањето на неопходните "закрпи" за што побезбедна имплементација на 2007 Daylight Saving Time беше една од поважните активности кои ги работев на работа. Помина фамозниот 11 Март, сега за сега се е во ред.
Поради оваа промена моментално, Чикаго е 6 часа зад Скопје (нормалната разлика е 7 часа) и тоа ќе потрае до 1 Април кога се ќе си дојде на свое.

Неодамна го посетив New York. Тоа беше моја прва посета на овој фантастичен град. Гужва, уличен хот дог, Central Park ќе ми останат во сеќавање.

Да се вратам во реалноста. Вчера добив mail од Sun Microsistems ме канат да учествувам во тестирањето на GlassFish V2 Beta. Добро, mail-ot не беше специјално до мене туку до Firstname и започнува со Dear [Firstname]...
Сега одма се прашувам, дали пораката ја генерирале во GlassFish работна околина?! :-)
Во mail-от понатаму се нагласува дека четворица учесници, чиј придонес ќе биде оценет како најдобар, може да добијат Apple iPod Nano со 2GB меморија. Всушност учесниците ќе го оценуваат продуктот, читај тестираат.
Ако е од Sun, МАЛКУ Е!!! Плус е ограничен на државите од кои доаѓаат учесниците. За жал ја нема Македонија.

Среќен Pi-ден

За крај сакам да ве прашам дали знаете дека денес е Денот на бројот Pi?
Имено, овој ден е прифатен како официјален празник на математичката константа Pi.
Се празнува во Математичките оддели кои се дел од образовните и научно истражувачките центри.
Математичарите го празнуваат на најразлични начини, еве некои од поинтересните:


  1. Конвертирање ги работите во Pi

    1. На пример за 12 часот велат Pi/2

      Ако некој има 31 година, велат дека е стар 10pi години. Кога е вашиот следен Pi роденден?

  2. Јадење храна која почнува на Pi: пица, пита, ...

Еве неколку адреси кон интернет страници кои имаат интересни информации поврзани со денешниот ден:
PiDay.org
Како да го прославите Pi-денот.
Активности за Pi-денот
Доказ дека 22/7&>Pi
СРЕЌЕН Pi ДЕН !!!

Но, денес не е само значаен за бројот Pi. На 14 Март 1879 година е роден Алберт Ајнштајн (1879-1955)


Значи навистина посебен ден!!!