Programovanie

NetLogo - nástroj pre obohatenie výučby na našich vysokých školách?

Čo je to vlastne NetLogo? Dovolím si citovať z článku NetLogo – prostredie na tvorbu multiagentových systémov a jeho využitie na simuláciu riadenia železničného priecestia:

NetLogo je programovateľné prostredie na modelovanie zložitých dynamických systémov. Zadávaním inštrukcií stovkám až tisíckam nezávislých agentov, ktorí paralelne vykonávajú svoju činnosť, je možné simulovať prírodné i spoločenské javy a skúmať tak súvislosti medzi správaním sa jedincov na mikroúrovni ako aj zložitejších štruktúr vznikajúcich ich interakciou na makroúrovni. Prostredie umožňuje študentom, učiteľom a vývojovým pracovníkom vytvárať svoje vlastné modely a jednoduchým spôsobom realizovať ich simulácie. Súčasťou prostredia je rozsiahla dokumentácia, návody a knižnica vzorových modelov pochádzajúcich z najrôznejších oblastí prírodných a spoločenských vied, vrátane matematiky a informatiky, fyziky a chémie, biológie a medicíny, ekonomiky a sociálnej psychológie. Súčasťou inštalácie prostredia NetLogo je tiež simulačný nástroj HubNet určený na použitie v sieti počítačov, kde každý študent môže riadiť simuláciu konkrétneho agenta.

Moja priateľka Martinka je momentálne na stáži v IAMO a jednou z aktivít ktorej sa tam zúčastňuje je aj kurz, na ktorom sa zoznámila s prostredím NetLogo. Keďže ma samozrejme zaujíma čo Martinka robí tak som sa na NetLogo pozrel aj ja a musím povedať že ma celkom nadchlo. V tomto prostredí sa dajú s použitím pomerne jednoduchého programovacieho jazyka vytvárať a programovať aj zložité modely správania sa tzv. agentov, ktoré sú doplnené efektnou vizualizáciou týchto modelov. V podstate ide o rozšírenie klasickej jednoduchej „korytnačej“ grafiky a jazyka Logo.

Priamo súčasťou programu sú stovky modelov ktoré slúžia pre ukážku vlastností prostredia a dajú sa priamo použiť ako základ pre tvorbu vlastných modelov či pre výučbu v rôznych oblastiach (Matematika, Fyzika, Chémia, Informatika atď.). Ako príklad z informatiky si pozrite hru Life:

A z fyziky napríklad simulácia dopadu vodnej kvapky:

A ešte pridám ukážku spolu s kódom – sieť uzlov prepojená systémom každý s každým:

A k tomu zodpovedajúci kód:

Ďalšie modely sa dajú nájsť na Internete. Keby za mojich čias ktoré som trávil v škole mal k dispozícii podobné prostredie, bola by výučba niektorých predmetov o dosť zábavnejšia :-).

NetLogo nájdete na stránke http://ccl.northwestern.edu/netlogo/ a je saomzrejme k dispozícii zdarma.

CCK pole s výberom štátu vo vybranom jazyku

Pokiaľ potrebujte na dvojazyčnom webe CCK pole s výberom štátu (aktuálny ISO 3166 zoznam) ktoré sa zmení podľa vybraného jazyka môžete použiť nasledujúci kúsok kódu:  » Čítať viac »

Google, Drupal, OpenSource: mať 12 je úžasné

Dmitri Gaskin má 12 rokov. 12 ročné deti väčšinou nemajú potuchy o OpenSource, programovaní či dokonca o JavaScripte a tobôž nie o jQuery. Dmitri však je už v tomto veku schopný dať dokopy ucelenú a plynulú prednášku o programovaní v jQuery. Neveríte? Dívajte sa a možno sa niečomu aj priučíte:

Som zvedavý čo z neho vyrastie za desať rokov. Dmitri, bravo!

Via RobsHouse – This is why open source is cool. (Google is cool, too)

Ako v Drupale na funkciu autocomplete

Určite ste už na rôznych webstránkach videli vo formulároch zaujímavú funkciu – píšete do formulárového políčka a pod ním sa vám automaticky ponúka výber podľa napísaných písmen (napríklad na http://seznam.cz pri vyhľadávaní).

Myslíte si že dosiahnuť niečo podobné v Drupale je ťažké? Vôbec nie.  » Čítať viac »

Tip pre Drupal vývojárov

Sledovať a čítať Drupal Planet sa oplatí!

Každý programátor potrebuje občas vysledovať ako sa chová jeho program v určitých situáciách. V PHP som pre tento účel často používal funkciu print_r(), ktorá vypíše obsah premennej v pekne štruktúrovanej forme. Pre Drupal však nebolo vždy vhodné nechať zobraziť výstup tejto funkcie priamo do stránky, lebo to mohlo spôsobiť rozbitie dizajnu a podobne. Preto som si napísal vlastnú funkciu, ktorá zobrazila výstup print_r() cez drupal_set_message() priamo dovnútra stránky. Funkcia vyzerala takto:

function debugPrint($data, $text = '') {
  global $user;

  if ($user->uid == 1) {
    ob_start();
    print '<pre>';
    print_r($data);
    print '</pre>';
    $out = ob_get_contents();
    ob_end_clean(); // */
    drupal_set_message(($text ? $text.' - ' : '').'VYSTUP:<br />'.$out);
  }
}

Odkedy som si však prečítal príspevok Hidden Drupal development functions, zistil som že podobné funkcie sú priamo prístupné v module Devel (ktorý by mal mať každý Drupal vývojár nainštalovaný). Sú to funkcie:

  • dpr – výstup print_r
  • dvr – podobné dpr, ale používa funkciu var_dump namiesto print_r
  • dpm – podobné dpr ale vypíše print_r výstup ako správu cez drupal_set_message
  • dvm – podobné dpm ale používa funkciu var_dump namiesto print_r

Dúfam že to pre vás bude rovnako užitočný poznatok ako pre mňa!

Kompletne prepísaný Texy! modul pre Drupal

DGXov skvelý Texy! je teraz ešte skvelejší!  » Čítať viac »

Nová verzia Texy! modulu pre Drupal

Dnes som si pri testovaní modulov Imagecache a Thickbox vsimol ze Thickbox vytvára odkazy na daľšie obrázky aj keď som nič také po ňom nechcel a žiadne ďalšie obrázky na stránke neboli. Nakoniec som zistil že Thickbox používa parameter rel="..." pre prepájanie súvisiacich obrázkov do série v ktorej je možno listovať šípkami. Následne na to som zistil že Texy! mi do každého odkazu vkladá rel="nofollow". Toto sa dá síce v nastaveniach Drupal modulu pre Texy! zapnúť ale ja som to určite zapnuté nemal. Nakoniec vysvitlo že to bola štandardná programátorská chyba:

$_obfuscateemail = variable_get('texy_obfuscate_email', '');
if ($_obfuscateemail = false) {
  // do nothing
  $texy->obfuscateEmail = false;
} else {
  // obfuscate email addresses
  $texy->obfuscateEmail = false;
}

Podobná chyba bola aj pri premennej $_forcenofollow. Tak so to opravil, trošku zladil veľkosť true a false v celom kóde modulu a vydal som novú verziu Drupal Texy! modulu texy-5.x-1.4.tar.gz.

Pozitívne na tom je aj to že som si konečne vyskúšal a pochopil ako funguje release cyklus v Drupal CVS (a ako sa dá v Tortoise CVS vytvoriť nový TAG) :D.

Ako vylepšiť pridávanie používateľského obrázku pre Drupal

Josh Koenig uverejnil na stránke Chapter Three LLC metódu ako v Drupale vylepšiť rozhranie pre správu obrázku používateľa. Je to veľmi jednoduché a osobne sa mi to aj veľmi páči. Keďže uverejnený modul je pre Drupal 4.7, upravil som si ho pre Drupal 5. Upravený modul nájdete v prílohe, originál na stránke autora.

IBM, OpenSource a DRUPAL

Firma IBM sa v posledných rokoch stala veľkým zástancom OpenSource software. Na svojej web stránke uverejňuje v posledných mesiacoch výborný seriál o úskaliach vývoja web stránok, postavených na OpenSource technológiách. Pred samotným zahájením vývoja je však podstatné vybrať „tú správnu“ technológiu. No a pre nás, čo sme sa stali priaznivcami OpenSource (W)CMS DRUPAL je potešujúce že autori vybrali ako najvhodnejší systém pre vývoj web stránok v tomto seriáli práve DRUPAL.

Tento seriál doporučujem sledovať, je tam veľmi dobre (a podrobne) popísané ako začať s Drupalom a ako ho využiť.

No a teraz už len pár odkazov:

Using open source software to design, develop, and deploy a collaborative Web site

Bližšie informácie o DRUPALe získate na http://www.drupal.org alebo http://www.drupal.cz

PS: V ostatných (neodkazovaných) častiach nájdete informácie o tom ako a prečo sa vyberal vhodný OpenSource software… Vybral som len časti o DRUPALe, pretože ten nás primárne zaujíma :).


20. februára 2007: Doplnil som ďalšie diely seriálu, ktoré pribudly na stránke IBM.

Jednoduchý komentárový antispam pre Drupal

Komentárový spam je dnes všeobecný problém. A keďže sa jedná predovšetkým o anglický spam jestvuje jedno, síce nie dokonalé, ale aspoň jednoduché riešenie. Je to síce pre znalejších ale keby ste potrebovali poradiť ako na použitie, napíšte. Momentálne sa mi to rozpisovať nechce :).  » Čítať viac »

Syndikovať obsah