September 30, 2010

TEDx: Dan Meyer – výuka matematiky a fyziky inak

7 kilová bowlingová guľa sa pohybuje rýchlosťou 3 m/s. Aká je kinetická energia lopty?

Nuda, že? A zamysleli ste sa niekedy prečo je to nuda a ako by bolo možné z toho príkladu nudu odstrániť?

Drobná zmena formátu spraví veľký rozdiel.

Dan Meyer rozpráva, ako zrealizovať zmenu formátu zadania problémov.

V našich končinách je veľa šikovných učiteľov, ktorí dokázali posunúť koncept omnoho ďalej. Možno by bolo fajn, keby sa zúčastnili nejakého TeDx-u aj v našich končinách.

September 6, 2010

Indikátory pre softvérové projekty

Softvéru je kopec. Niektorý softvér prežíva a je udržiavaný len vďaka enormnému úsiliu a stratách na budgetoch. Iný softvér proste frčí jedna radosť.

Ako je možné zistiť nakoľko riskantné budú práce na softvérovom projekte? Zostavil som sadu indikátorov, ktoré umožňujú veľmi rýchlo zhodnotiť projekt. Pokiaľ je väčšina nasledujúcich indikátorov pre projekt pozitívna, malo by sa vedenie projektu zamyslieť (ak už nie je neskoro).

Indikátor 1. Tím nepoužíva version control. Toto je dnes už fatálny indikátor. Pokiaľ zistíte, že version control nie je na mieste, utekajte preč! Tak rýchlo ako sa len dá!

Indikátor 2. Tím kopíruje binárky a libky s programom priamo do version control. Toto indikuje typický zlý návyk a lenivosť ľudí. Zbytočné megabajty vo version control spomaľujú prácu a checkout projektu môže trvať aj 20 minút (v lepšom prípade). Pri snahe o drobnú opravu v kóde sa jednoducho strávi niekoľko hodín len checkoutovaním.

Indikátor 3. Tím builduje aplikácie pomocou IDE a nevie aplikáciu zbuildovať bez IDE. Silne sa obmedzujú možnosti nasadenia projektu.

Indikátor 4. Návod na deployment začína slovami: Skopírujeme tieto Jary/libky/rožky do adresára. Indikuje nezvládnutý alebo neexistujúci deployment postup. To je veľmi nebezpečné, v prípade poškodenia produkčného servera bude nahodenie trvať veľmi dlho, ak bude vôbec možné. Taktiež pridanie nového člena do tímu je veľmi drahé a časovo náročné.

Rozumným riešením použitie nástroja na automatizáciu, ako je napríklad Maven.

Indikátor 5. Tím nemá Wiki. Toto je veľmi zle, pretože znalosti sa strácajú. Nový člen tímu jednoducho nemá odkiaľ čerpať informácie, prečo je daný kus softvéru riešený tak ako je.

Indikátor 6. Tím nepoužíva softvér, ktorý vyvíja.

Indikátor 7. Tím alebo manažment považuje písanie testov len stratu času. Veľmi nebezpečné. Nesťažujte sa potom na straty na budgetoch.

Indikátor 8. Pred releasom nie je spustený ani unit-test, ani integračný test. Testuje sa na používateľovi, ktorý s tým ale vopred nesúhlasil.

Indikátor 9. Kontinuálna integrácia je pre tím cudzie slovo.

Indikátor 10. Neporiadok na stoloch a pracovisku. Tento nesoftvérový indikátor môže až prekvapivo dobre kopírovať stav serverových aplikácií.

December 15, 2009

VirtualBox – problémy s Grubom?

Alebo s Lilom? Proste s bootovaním?

Potom máte pravdepodobne dynamicky alokovaný disk.

Takže si to pekne skonvertujte na statický a ono vám to zase bude fungovať.

Veď je to úplne zrejmé! Nie?

Pomocou Sysrecuecd som nabootoval VirtualBox, pripojil som si disky  a rsyncom preniesol dáta. Keďže bolo naviac nutné zachovať aj rozšírené atribúty filesystému, lebo inak by Centos nadával ako pohan, pridal som -X

rsync -av -X disk-dynamicky/* disk-staticky/

Grub som skúšal odpaľovať z chrootu, ale to nebol moc dobrý nápad. Nakoniec sa mi to podarilo priamo zo Sysrescuecd.

To, čo zafungovalo bolo spustenie inštalátoru grubu s nasledujúcimi parametrami:

grub-install --root-directory=disk-staticky /dev/sda

Pokiaľ máte lepšiu metódu, sem s ňou.

Ešte taká drobnosť, ktorá možno nie je zrejmá. Keď máte shell grubu, tak môžete použiť tabulátor na doplňovanie príkazov a názvov súborov. Ak zrovna neviete, kde je uložné jadro na systéme, tak vám ho tabulátor pomôže nájsť.

Príklad:

kernel /boot/vmlinuz<TAB>... root=/dev/sda1
initrd /boot/init<TAB>...

November 6, 2009

Debian problém – dpkg dependtry

Tak si inštalujem balíček a aha ho koťuhu. Dpkg mi začalo nepekne nadávať v jazyku C:

dpkg: ../../src/packages.c:221: process_queue: Assertion `dependtry <= 4' failed.

Ej veru. Nejakú chvíľku som sa s problémom trápil. Skúšal som ručne odstrániť balíky, potom ich zase pridať. Presne tak ako to tvrdilo veľa užitočných príspevkov vo fórách. No a hádajte ako to dopadlo? Nepomohlo to.

Pozrel som sa teda na archív balíčkov. Vravím si, skúsim upgrade dpkg.

wget http://ftp.cz.debian.org/debian/pool/main/d/dpkg/dpkg_1.15.4.1_i386.deb
dpkg -i dpkg_1.15.4.1_i386.deb
dpkg --configure -a

Zabralo. Pravdepodobne to bola chyba v implementácii dpkg.