Programming is the art of teaching procedures to a computer.
Learning By Example Is The Most Effective Learning Strategy.
Teaching is also a learning experience for the teacher.
"I thought I understood the material before, but after teaching it, now I feel I really understand it!" a teacher will often say.
Checking the connection between abstract knowledge and concrete examples helps the teacher to empathize with the students' viewpoint.
The Art Of Choosing Good Examples Is An Important Problem Solving Skill.
To learn from an example, it is necessary to know which features of the example are important.
2007-10-28
2007-10-13
Мэргэжлийн чиглэлээрээ блог бичих?
Гүй ээ энэ мэргэжлийн чиглэлээрээ бичлэг оруулж байя гэж бодсон блог маань нэг л их сүржин нэртэй даржин юм болчижээ. Ядаж энэ хоёр (Төгөлдөр Батака) чихгүй толгой оригоод анх амлаж байсан амандаа хүрэхгүй юм аа. Аа нээрэн Төөгөө маань папа болсон шүү хүмүүсээ баяр хүргээрэй. Нэг хөөрхөн жижигхэн хакер хорвоод мэндэлсэн шүү :D
Зиак тэгэхээр энд бичлэг оруулахгүй байгаа маань дараах шалтгаануудаас болсон болов уу: - нэгдүгээрт сурсан мэдсэн зүйлээ тэмдэглээд бусдад дуулгаад байх зав зай хомс - хоёрдугаарт, интернэтээс ухаад л, номноос уншаад л олчих мэдээллийг би энд бичлээ гээд нэг их шальтай зүйл болох нь юу л бол, нээх туршлага муршлага хуримтлуулж бусдад тус болоод байх юмаар хомс хойно доо. –гуравдугаарт бодлого модлого энэ тэрийн тухай өөрийн бодол санааг бичих гэхээр өөрөө юу ч үгүй байж бусдын хийснийг шүүмжилчих гээд болдгүй – дөрөвдүгээрт, салбарын бус хүмүүст тустай зүйл бичих гэхээр уул нь өөрийн блогоос тусад нь гаргасан шалтгаан маань элдэв технологийн үгнүүдээр хүмүүсийн мэдрэлийг барахгүй гэсэндээ юмшдээ уул нь гэх мэт
Зиак тэгэхээр юу үлдэв? Энд тэндээс сонссон уншсан мэдсэн зүйлүүдээ тоймлож бичих л үлдэх шив.
Энэ бүхнээс үзэхүл: -Энэ блог нэг их хэрэгтэй юмаар хомс болох шинжтэй, Ер нь ч тэгээд хийх хүн арга хайдаг хийхгүй хүн шалтгаан хайдаг гэдэг дээ. Бодоод байсан чинь Ганбаа хүү буруу зүйлүүд жагсааж бичсэн байна. Дээрх бүх чиглэлээр бичлэг оруулнаа ерөөсөө. Хэрэгтэй гэж үзсэн хүмүүс үздэг юм байгаа биз хэрэггүй эд байна гэж үзсэн нь үзэхгүй л байна биз тэ? Гэхдээ ямар ч байсан буруу зөрүү зүйл бичиж хүмүүсийн толгой тархийг эргүүлэхгүй л байхад болоо. Ингээд дараагийн бичлэгээрээ өөрийн бага сага чаддаг ажлуудаасаа бичиж оруулнаа ерөөсөө. Харин одоо бол өөрийн ашигладаг програм түүлс багажуудаа дэлгэе.
Нөгөөх нь Ubuntu, линукс чиглэлийг аль эртнээс сонирходог байсан боловч сүртэй ашиглаад л байсан түүх их тааруу л даа. Ямар ч байсан одоо гүйцэтгэж байгаа нэг төслийн сэрвэрээр Ubuntu server сонгосон байгаа. Ашиглахад бусдаасаа арай илүү хялбар над мэтийн Microsoft-ын доширак идэж өссөн гаруудад бол бүүр таалагдах болтойм билээ.
Хэл номер нэг PHP: Оюутан байхдаа хиймэл оюуны чиглэлээр нэг хөөгөөд явчдаг юм билүү гэж бодож байгаад энэ хөөтэй хэлийг сурч нэг веб хийснээс болоод 180 градус эргэсэн хүн дээ би. C++ нухаж байгаад PHP үзсэн болохоор нэг их түүртээгүй санагддаг юм. Интернэтээс MySQL PHP Apache гэж гурван “юм” олж аваад Zialot (Эрхэмээ байх тэ?) – гэдэг хүний бичсэн хичээлийн дагуу холбож энэ тэр сурчаад бас нэг логин модулын коод харж байгаад А үсэгтэй болсон хүн дээ.
Dreamweaver ашиглаад л бичнэ. PHP дээр элдэв веб мэб юм хийдэг болсоноос хойш даруй 3 жил болчижээ. PHP-гээр хүнээс юм асуухгүй л боллоо гэж бодож байсан чинь жил гарны өмнө Интерактивын Болдоо ах гэдэг хүнтэй хамт нэг ажил хийснээс хойш даруухан л байхгүй бол аюултай толгойтой хүмүүс энд тэнд мэр сэр байдгийг ойлгосон гэжуга. :D
Query Browser, phpMyAdmin зэргээр MySQL-ээ удирдаад явчихдаг. Нарийн эксперт түвшинд биш ч гэсэн ямарч асуудал гаргахгүйгээр ажлаа хийчих хэмжээнд бол MySQL-г цааш нь харуулчихаж дөнгөнө.
За за үргэлжлэлийг нь дараагын хагас сайнд оруулья. Амралтын өдөр маань дуусах нь...
Бичсэн Unknown , 2:03 AM 6 сэтгэгдэл
Ангилал: Мэдлэгт дусал нэмэр
2007-07-16
Top 10 custom JavaScript functions of all time
Tuesday, November 29th, 2005
UPDATE: For anyone who lands on this articlemonths after the fact, there is now a podcast entry about this article reviewing each and every function.
If there was ever a universal common.js shared among the entire develosphere, you’d fine these ten (plus one bonus) functions. It would be the swiss army knife no developer would go into production without. They have no doubt been tested tried and true and have proven usefulness and helpfulness to all those who’ve used them. So without further ado, here are what I believe to the top ten greatest custom JavaScript functions in use today.
Upon further reading this article, it is suggested that for this article in particular the reader should use an alternate style with cleaner whitespace and larger margins. This is available by selecting Clean with Whitespace available on the side bar.
10) addEvent()
Surely a staple to event attachment! Regardless to what version you use written by whatever developer, it does what it says it does. And of course as you might of known, I’ve put together quite a handy version myself recently of addEvent() with some help from the contest winner and Mark Wubben along with a few minor syntax adjustments. But just to be fair to Scott Andrew, here is the original that started it all.Scott Andrew’s original addEvent() function
function addEvent(elm, evType, fn, useCapture) {if (elm.addEventListener) {
elm.addEventListener(evType, fn, useCapture);
return true;
}
else if (elm.attachEvent) {
var r = elm.attachEvent('on' + evType, fn);
return r;
}
else {
elm['on' + evType] = fn;
}
}
9) addLoadEvent()
Originally written by Simon Willison and highly adopted by many others as a simple way to add events to trigger after the page has loaded. This of course attaches all your events to the onload event handler which some still see as necessary, nevertheless it does exactly what it’s supposed to, and does it well.
addLoadEvent() by Simon Willison
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
}
else {
window.onload = function() {
oldonload();
func();
}
}
}
Of course another method is to simply assign multiple event listeners to the window by using addEvent() as described in number 10 as follows:
assigning multiple load events to window
addEvent(window,'load',func1,false);
addEvent(window,'load',func2,false);
addEvent(window,'load',func3,false);
8) getElementsByClass()
Originially written by nobody in particular. Several developers have implemented their own version and no one single version has proven to be better than another. As you might expect, my humble self has even had a crack at it. This function was spawned from developers needing a quick and elegant way of grabbing elements by a className and to a developer’s surprise, it’s not an original DOM method as one might think…afterall, we have getElementById
, getElementsByName()
, getElementsByTagName
, what the hell happened to getElementsByClass
??? Here it is in all its glory:
getElementsByClass by Dustin Diaz
function getElementsByClass(searchClass,node,tag) {
var classElements = new Array();
if ( node == null )
node = document;
if ( tag == null )
tag = '*';
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');
for (i = 0, j = 0; i <>
Simply add a class name to the beginning of the funciton and the 2nd and 3rd arguments are optional and the magic is done for you!7) cssQuery()
Originally written by Dean Edwards as a way to query the DOM according to CSS properties which supports a multitude of selectors. However in all fairness, this is more like a mini-library and not quite so light on the weight factor, but still, a very kick-ass function. Due to its length (and CC lisencing) I won’t post it on this site. Full documentation can be found on the myCssQuery reference and download page.
6) toggle()
To be totally honest, there are probably more variations of this function than there needs to be. The history of ‘toggling’ basically comes down to showing/hiding an element upon an event being fired. To make matters much simpler, I too have put one together. But by no means is it considered the ultimate toggle function, but it does do the basic functionality of showing and hiding.
toggle() by the masses
function toggle(obj) {
var el = document.getElementById(obj);
if ( el.style.display != 'none' ) {
el.style.display = 'none';
}
else {
el.style.display = '';
}
}
5) insertAfter()
As far as I know, Jeremy Keith sort of came up with this idea even though one would have thought this too would be a DOM core method. But just like getElementsByClass, it isn’t. So rather than pulling the function straight out of the book, I’ll leave that up to you to buy it yourself. Instead I’ve pulled this simple method from public domain:
insertAfter() on public domain
function insertAfter(parent, node, referenceNode) {
parent.insertBefore(node, referenceNode.nextSibling);
}
4) inArray()
This too is very sad that this isn’t part of the DOM core functionality. But hey, it makes for fun references like this! This function however isn’t quite a function; it’s a prototype that extends the DOM Array object. I remember one day thinking to myself “surely I can do this in PHP, it’s gotta be in JavaScript.” Well, this extension makes it work just like you’d expect if you’re a PHP developer. Here is a version from EmbiMEDIAinArray Prototype Array object by EmbiMedia
Array.prototype.inArray = function (value) { var i;
for (i=0; i <>
3, 2, & 1) getCookie(), setCookie(), deleteCookie()
I honestly don’t know what I would do without these guys. I hate the DOM implementations of setting cookies in JavaScript. In PHP it’s so easy, and it’s easy for one main reason, they work just like the functions below. All three of these functions were found to be public domain and free to use.getCookie(), setCookie(), deleteCookie() open domain
function getCookie( name ) {
var start = document.cookie.indexOf( name + "=" );
var len = start + name.length + 1;
if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
return null;
}
if ( start == -1 ) return null;
var end = document.cookie.indexOf( ';', len );
if ( end == -1 ) end = document.cookie.length;
return unescape( document.cookie.substring( len, end ) );
}
function setCookie( name, value, expires, path, domain, secure ) {
var today = new Date();
today.setTime( today.getTime() );
if ( expires ) {
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );
document.cookie = name+'='+escape( value ) +
( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString()
( ( path ) ? ';path=' + path : '' ) +
( ( domain ) ? ';domain=' + domain : '' ) +
( ( secure ) ? ';secure' : '' );
}
function deleteCookie( name, path, domain ) {
if ( getCookie( name ) ) document.cookie = name + '=' +
( ( path ) ? ';path=' + path : '') +
( ( domain ) ? ';domain=' + domain : '' ) +
';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}
Last but not least, a bonus function: The Prototype Dollar Function
This function straight up kicks so much ass. First of all, just look at it.Prototype function $
function $() { var elements = new Array();
for (var i = 0; i < element =" arguments[i];" element ="="" element =" document.getElementById(element);" length ="="" obj1 =" document.getElementById('element1');" obj2 =" document.getElementById('element2');" elements =" $('a','b','c',obj1,obj2,'d','e');" i="0;i
Tell me that’s not beautiful! Short not only by name, but by reference. It not only takes in strings, it takes objects too. You can pass it one argument, or pass it many! This by far is my favorite function of all time which will provide years and years of handiness.And so will they all…
I hope this quick and handy list of JavaScript functions has been as useful for you as they have been for me. And for your downloading pleasure, here is all these functions wrapped up in a common.js just for you.After the fact
Added after 30 comments or so…: Ok, I can understand everyone’s point of view when it comes to ‘these ten being the best‘. The fact of the matter is, this is what I think were the best. If Dean Edwards wrote his top ten, I’m sure it would be different. If Stuart Langridge wrote his list, it too would be different. I mainly concentrated my list on the DOM. Browser detection is up to the developer at hand. Ajax functions I felt do not qualify as an ‘all timer’ mainly because Ajax is still in its infancy and has yet to impress me with something amazingly useful. For those wishing to just push these functions aside and slap on prototype to their documents, go ahead and slap on the extra 30k if you feel that’s necessary. Nevertheless, thank you all thus far for the wonderful comments. I still hope this small list will come in handy for quite some time. And believe me, there are hundreds of other great functions that could possibly make it here. Just because it isn’t here, doesn’t mean it’s not good. Just use your imagination ;)
Бичсэн Unknown , 12:13 AM 2 сэтгэгдэл
Ангилал: Javascript
2007-07-08
SQL-ha ha
Мэссэнжэрээр ийм нэг мсж ирэхээр нь ихэд олзуурхаад энд тавьчихлаа. Хөгжилтэй байшүү хэ хэ:
Нэг сайн SQL программист хоолны газар яаж баталгаатай комманд бичих тухай бодож байна:
SELECT shnitsel, sharsanTums, mainuuz FROM tblRestaurant WHERE (price_shnitsel + price_sharsanTums + price_Mainuuz) < (tsalin/100) AND shnitsel_hadgalahHugatsaa > GETDATE() AND schnitsel_tuuhii = FALSE AND tums_sharsanTos = GETDATE() AND mainuuz NOT LIKE '%hujaagaas%' AND togooch_sogtuugiin_hemjee <= 0.8 AND kassnii_huuhen LIKE "90,60,90"
Бичсэн Unknown , 6:32 PM 3 сэтгэгдэл
Ангилал: DB
2007-05-23
2007-05-10
Hibernate
Hibernate is an Object-relational mapping (ORM) solution for the java and .net languages.
Нээлттэй эхийн LGPL лицэнз бүхий энэхүү технологийг Jboss Redhat middleware компани хөгжүүлдэг ба java хэлний Enterprise Java Bean (EJB) технологи дээр үндэслэгдсэн, өгөгдлийн сантай ажиллах боломжийг сайжруулж, обьект хоорондын харилцан хамааралтай зураглал (mapping) бий болгож өгдөг гол давуу талтай юм. ө.х. java систем хөгжүүлэгчдийн өгөгдлийн сантай ажиллах ажиллагааг хөнгөвчлөх, өгөгдлийн санг хамгийн үр дүнтэй ашиглах бололцоог олгодог утгаараа амжилттай явагдаж буй төсөл гэж болно.
Бүүр энгийн үгээр хэлэх юм бол ямарч өгөгдлийн сантай (миний ойлгосоноор java-тай ажиллаж болох бүх бааз гэдэг чинь...) ажиллаж чадахаас гадна доторх хүснэгтүүдтэй нь харилцан хамааралтай, төстэй (field-үүдтэй нь адил хувьсагчуудтай гэх мэт) Java Class –ууд үүсгэн ажиллах бөгөөд өгөгдлийн сангийн хүснэгт болон java class 2-ын дунд mapping болж өгдөг xml тохиргоо бүхий багц үүсгээд өөрийн жинхэнэ кодоосоо тэдгээр классуудтай обьект хандалтат технологиор ажиллан өгөгдлийн сантай ажиллах ажиллагаагаа өөрийн сайн мэддэг java орчинд оруулж ирдэг. Та бүхэн бодож байгаа байх л даа Харилцан холбоотой (many-to-many г.м) хүснэгтүүд болон давхар хүсэлт (query – JOIN г.м) илгээхэд яах юм болоо гэж. Тэгвэл эдгээр боломжуудыг hibernate3 дээр бүрэн шийдсэн байдаг бөгөөд та хүснэгтүүдийн харилцан хамааралыг mapping xml тохиргоонууд дээрээ зохих дүрэм журмынх нь дагуу оруулж ашиглана.
Reverse and Forward Engineering
Товчхондоо бол Forward гэдэг нь классуудаасаа өгөгдлийн сангаа үүсгэх, reverse гэдэг нь эсрэгээрээ өгөгдлийн сангаас кодоо үүсгэж авах гэсэн үг юм. Эдгээр 2 арга нь хөгжүүлэлтийн явцад их хэрэг болдог бөгөөд өгөгдлийн сан дээрх жижиг өөрчлөлтөнд түүртэхгүй үндсэн кодоо үүсгээд авах мөн эсрэг тохиолдол ч хэрэглэж болох энэ аргуудыг build.xml буюу Ant compiler-ын тусламжтай хийдэг юм байна.
Би hibernate-ыг анх удаа ашиглаж байгаа болохоор зөндөө л бэрхшээл мэдэхгүй чадахгүй зүйл гарч байна. Гэхдээ бас яахав цэгцэрсэн, эхний ойлголтуудаа блог дээрээ тэмдэглэж үлдээхээр шийдсэн маань энээ. Ямар ч байсан тохируулах суурилуулах болон simple түвшинд ашиглах чадвартай боллоо. Цааш ахисан мэдлэгтэй болоход мөн application бичих ажилд хэрэг болох үүднээс ирээдүйд тулгарах зүйлсээс одоогоор анзаарагдсан нь гэвэл EJB 3.0 болон ORM мөн Eclipse IDE дээрх plug-in-ууд дээр маш сайн боловсрох сурах хэрэгтэй нь харагдаж байна.
Дашрамд нь Hibernate дээр ажилладаг хүн байвал өөрийн туршлагаасаа хуваалцахыг хүсье
Simple Structure: (directory)
+lib
- hibernate-ын заавар дээр дурдсан jar файлуудыг энд байрлуулна.
+src
└events(package)
-Event.java
-EventManager.java
-Eventhbm.xml
└util
-HibernateUtil.java
-hibernate.cfg.xml
-build.xml
Бичсэн Unknown , 8:16 PM 2 сэтгэгдэл
2007-03-26
ШИЛДЭГ ПРОГРАМ ХАНГАМЖ -2007
Мэдээлэл, харилцаа холбоо, технологийн газар 2007 оны 12 дугаар сарын 03-ний өдрийг хүртэл "Шилдэг програм хангамж-2007" /Mongolian software awards-2007/ уралдаант шалгаруулалтыг зарлаж байна.
Энэхүү уралдаант шалгаруулалт нь Монгол програм хангамжийн хэрэглээг дэмжих, зах зээлийг өргөжүүлэх, Монгол Улсын програм хангамжийн үйлдвэрлэлийг хөгжүүлэхэд дэмжлэг үзүүлэх зорилготой бөгөөд жил бүр уламжлал болгон зохион байгуулагдах юм.
Шалгаруулалтыг дараахь 2 номинациар явуулна.
a. Шилдэг програм хангамжийн бүтээгдэхүүн /Best software product/,
b. Програм хангамжийн бүтээгдэхүүн ашиглагч шилдэг байгууллага /Best software consumer/
Уралдаант шалгаруулалтын шагналын сан 20 сая төгрөг байна.
Бичсэн Unknown , 1:51 AM 0 сэтгэгдэл
Ангилал: ICT бодлого, Зар
2007-01-11
UNIX beer Party
4 пиавны пян даахгүй болсноо өглөө босоод дотор хямралтай, тархи манаранга буйг ажихуй дор хөгширч аснаа санан гунигламуу. :)
За за дэмийрэх яахав ямар болор цомд орж байгаа биш. UBP-ыг ноднин жил эхлэхээс нь авахуулаад л очих юмсан гэж бодсоор жилийн нүүрэн дээр загнуулан байж арай гэж очив.
За тэгээд web 2.0 (би баахан дэмийрэв), Ajax (магтах гэж оролдов), CDMA 450, Wimax (оновчтой эсэхийг тодруулах шахав), Outsourcing(яаж хийхэв, ирээдүйд outsourcing гэж ухагдахуун алга болох уу? outsourcing хийхийн тулд дотоодын цалин ямар байх ёстойв), Ном share хийдэг public сэрвэр (хятадууд ашиглаад байгаад жоохон хордов), IPv6 (Магсар лекц уншив, ISP-үүд ашиглаж эхлэхээр болов :p), Програм зохиогчдын холбоо (Яаг яах холбоо эсэхийг нь сайтар ухаж ойлгоогүй нэр нь юу гэл ээ Дөлөө?), LPI-ын сургалт явуулах тухай (хажуугаар нь би AJAX заахаар болоод явчихсан уу, энэ пивоноос л боллоо :P ) за байз өөр чинь юу юу ярьчив даа. Өө тийм блогийн тухай зөндөө ярьсан шдээ. Тэнд очсон хүмүүс цөмөөрөө л намайг зүс танихгүй болохоос блогоор таньдаг болцийм шиг ээ. Өөө энэ нөгөө блогоор бүлтрээд байдаг Ганбаа юм уу хм гэж байгаам чинь ха ха худлаа худлаа. Гэхдээ ер нь блогчидын АРМИд манай мэргэжлийхэн дийлэнх массыг дарж байгаа бололтой. Аргагүйм даа. Арай илүү дэлхийтэй холбоотой улс болохоор, ... гэснээс Ганбат гээд гар барихаар нь л чи нөгөө Ганбат гээд блогийн эзэн үү гэсэн тийм гэж байна. Намайг Ганбаа гэдэг блогийн эзэн үү гэж байна “тийм” л гэсэн. Шал танихгүй хүн гэхэд аймаар дотно шууд л найз болчиж байгаам чинь хэ хэ. Яагаав нөгөө Шүгэл, Шахаа гээд гоё бичлэгүүдийг нь та нар мэдийшд тэ. Ойрдоо жоохон “залхуураад” бичихгүй байгаа гэнээ. Блогоо гэж...
Дөлөө LiMNux –ыха тухай цаашид юу юу хийхээр төлөвлөсөн зэргээ танилцууллаа. Админ ажилд авах зар ХАС банкнаас явжийлээ. Мэддэг, чаддаг, мэргэшсэн гэдэг тухай хөгжилтэй яриа өрнөлөө. (Манайханы мэддэг гээд хээв нэг CV-дээрээ бичдэг нь англиар Сонссон гэдэг үгтэй дүйхүйц утга илэрхийлж байдаг гэж Тамираа ёжиллоо. Энэ бичлэгийг фаблишдчаад CV-ээрээсээ “сонссон” чадваруудаа авч хаянаа ерөөсөө. Юм үлдэхнүү гүй юу?)
UBP дээр маш энгийн, хөгжилтэй, потенцаалний, пиавтай яриа өрнөдөг юм билээ. “Эрэлхийлсэн” яриа маань явж явж Магсараас болсон уу яасан боловсролын салбар дээр ирж нилээд дуу өндөрсүүлэх бололтой болоод явчихсан шүү. Санал зөржийнаа. Ангийн даргын хувьд нэг үг хэлэх үү би гээд л бүгдээрээ... :P Миний санал бол энэ муу төр л хэтэрхий эрх мэдэлтэй оролцоод байгаагаас боловсролын салбарт сайн багш тогтохгүй, зах зээл дэх хүний нөөцийн бодлогоос хоцорч гишгээд байгаагаас бүх юм болж байгаам гээд наачихсан санагдана. :D гэх мэтчилэн хамж яриагүй сэдэв гэж цөөхөн үлдсэн дөө. Цаашид UNIX/Linux дэмжигчидийн тоо улам өсөж Дөлөөгийн яриад гүйгээд байдаг зүйл асар үнэтэй болох цаг тун удахгүй ирнэ гэдэгт итгэж байна.
UBP болон Нээлттэй эхийн талаар сурвалжлан бичсэн Ганбаатар.
Бичсэн Unknown , 12:36 AM 0 сэтгэгдэл
Ангилал: Unix/Linux