неделя, юни 28, 2009

За хората, бъдещето и информатиката

Да зададеш въпроса "За какво я уча тая математика?" в началото на първи курс в университета е проява на нетърпеливост. Да зададеш същия въпрос няколко години по-късно е проява на пълно неразбиране на материята.
Да уточня, първо, аз никога не съм бил особено добър по математика, дори имам доста изпити оставени "за като му дойде времето", но дори аз започвам да осъзнавам някои неща за живота. Има още две години

Започнах да си мисля някакви такива неща за живота и информатиката след като в Русе се запознах с двама пияни младежи от Манчестър. Те тъкмо бяха завършили училище и тепърва кандидатстваха в колеж. Когато ги питах какво ще учат и двамата казаха Network Administration (или нещо от сорта, не запомних точно, защото след това започнаха да крещят - hackers and crackers!).

Интересно ми стана защото в България едва ли някъде можете да намерите подобна специалност, при нас има математика, информатика и КСТ, друго ако се интересуваш и се занимаваш сам.
Докато при нас ни учат на нещо и след това ни обясняват за какво ще се ползва, на запад първо им казват какво ще правят и после им обясняват как, защо и т.н.

До сега винаги съм си мислел, че това е слабост на нашата образователна система, но се замислих над една мисъл, че в момента преподавателите учат студентите да работят професии, които все още не съществуват. За тях това е много сериозен проблем защото те специализират нещата. Ако искаш да станеш мрежов администратор учиш едно, ако искаш да станеш desktop програмист - друго, а за web програмист - нещо напълно различно.
При такъв подход, без да задълбаваш в нещата, промяната би била нещо, с което доста трудно можеш да се справиш ако не си запознат с основите.

Точно това според мен се опитва да направи нашата образователна система - преподават основите, преподават начин на мислене, а от там нататък е въпрос на желание и малко интелект да се развиеш и да научиш новите неща. Точно по същия начин по който първо виждаш нещата математически и след това разбираш как се повтарят в информатиката.
Някакъв юноша бледен беше казал, че информатиката е един от най-сложните дялове на приложната математика и посредствените математици е хубаво да си останат просто посредствени математици :)
Далеч съм от мисълта, че нашите университети вадят много по-подготвени и много по-кадърни информатици от западните, все пак всичко е въпрос на хора, ако си посредствен няма значение къде учиш. :)

Важното е да се стремим към самоусъвършенстване, да гледаме напред и да вярваме, че ако нещо е писано да стане, то ще стане по един или по друг начин :)

peace and love brothers \/

сряда, юни 24, 2009

Suse Studio - web, а ?

Най-после получих покана за SuseStudio beta tester.
За незапознатите да обясня за какво иде реч. Suse Studio си е едно готино уеб сайтче, в което можете да си "построите" сами linux дистрибуция на база SUSE, да си го изтеглите или дори да го тествате online.

Въпреки че софтуера е още в beta стадии се държи много прилично. Разработчиците са се постарали да не се усеща по нищо, че работите с web интерфейс, а не с desktop приложение.
При влизане те посреща един симпатичен робот и ти предлага да си избереш базова конфугурация, с която да започнеш същинското ръчкане и настройване. Възможните опции са server, minimal x, gnome, kde 3, kde 4 и minimalistic. След като си избереш шаблон за работа можеш съвсем спокойно да си селектираш какви пакети искаш да се инсталират допълнително и кои да се махнат, поддържат се зависимости, така че шанса да махнеш нещо, което не трябва, е доста малък.
Следват тривиалните настройки за локализация, добавяне на потребители и т.н.
До тук опциите са доста ограничени (поне ако искате наистина да разцъкате нещата на 100%), но идва интересната секция "Overlay files", където можете да качите на сървъра файлове, които да заменят вече съществуващите на диска. Ако знаете какво правите, това ви дава пълен контол над всичко което си поискате.
За финал остава естесвено самото сглобяване на системата, което в моя случай отне около 3 минути, като можете да си изберете дали да се build-не disc image, live cd, vmware virtual machine или xen virtual machine. Имате 15GB за експерименти. :)
След като процедурата завърши, освен очакваната функционалност да си го изтеглите има едно малко симпатично бутноче Testdrive. Тук започва забавлението. Можете да се свържете към виртуална машина стартирала вашата дистрибуция или през flash-овски уеб интерфейс или през ssh и да правите каквото си искате. Все пак не го приемайте като безплатен виртуален хостинг, всяка сесия се откача автоматично след 1 час - по мое мнение напълно достатъчно време за да разберете дали добичето работи като хората.
Виртуализацията на linux + GNOME ми се стори малко бавничка, но все пак върви върху QEMU (мен ако питате, лоша работа :)).

По-важния въпрос тук е на кого му трябва нещо такова ? Ако искаш да си направиш 100% твой си линукс имаш хиляди варианти - от linux from scratch, през debian net install, та чак до красивите и удобни инструментчета на ubuntu за тази цел.
На мен лично за подобен тип дейности ми допада най-много debian net install / arch linux net install идеята, тоест базова инсталация, която си слагате от диск и от там нататък всичко, което ви трябва се инсталира от net-а. По-голям контрол над системата - здраве му кажи.
Ще кажете - да, ама това е само за nerd-ове. Дори да приемем, че е така, аз пак не проумявам защо тези fancy user friendly shiny happy geeky-weeky teeny-weeny flashy нещица трябва да се случват в web ???
Само мога да си представя какви хардуерни ресурси са отделени за този проект. За мен чиста загуба на време и ток. :)

Whatever, проекта не е лош като изпълнение, ако ви допада идеята тествайте го и сами преценете до колко е полезен. Най-малкото си заслужава разцъкването. Можем само да се надяваме, че това ще донесе на linux някой друг фен.

P.S. За наблюдателните, Chrome под Linux тича та не мога да го догоня. Нямам търпение да излезе нещо по stable. На фона на това, което писах за Firefox, май открих новия си любим браузър.

неделя, юни 14, 2009

Web browser-ски истории

Преди да започна на философствам, да си излея мъката.
Оставям си лаптопа пуснат и излизам като само заключвам екрана за да не пипат любопитни хорица. Прибирам се на следващия ден. Пиша си паролата, влизам.
Всичко сече зверски. Системата е тотално неизползваема. 100% cpu usage. top показва, че най-времезаемащия процес е firefox с 2%. Имам 1gb RAM, заети около 400MB, swap 960MB от 1GB.
Swapoff твърди, че не може да освободи партишъна. Чудя се дълго време какво става.
Оказва се, че след убиване на Firefox (който по принцип не се спира) се освобождават 150MB RAM и 700MB swap! wtf !!!
Нямам идея какво прави тоя браузър и какви мамка му ги пише в тоя swap.

Колкото повече се увеличава числото след името Firefox, браузъра става все по-функционален, но и все по-тежък. За сравнение един тъп уеб четец като Opera направо кърти по отношение използване на памет и скорост. А уж нямат тази огромна потребителска база, нямат същия брой разработчици и т.н., а все пак се справят прекрасно, колкото и да не искам да го призная.
Firefox сякаш продължава да трупа потребителска база, осланяйки се само на стара слава. А борбата при браузърите става все по-ожесточена след като google се настаниха на масата с намерение да вземат голямо парче от тортата. Първите бета версии на google chrome за linux и mac вече са факт, а фурора, който предизвика излизането на версията за windows просто не се нуждае от коментар.
Microsoft май последни осъзнаха, че пазара на уеб браузърите не им принадлежи по право и набързо се втурнаха да вадят нови версии на своя печално известен Internet Explorer.
Opera без да вдига много шум вади версия след версия, всяка следваща стъпка е точно на мястото си и се радва на почти фанатични потребители.
Май само Apple от самото начало имаха ясна визия какво ще правят с техния Safari, но пък и тях никой не ги притиска - нямат конкуренция на Mac платформата и никога не са имали амбициите да направят нещо сериозно в света на така презираните PC-та.
Единствения останал жокер в ръкава на Firefox е неговота функционалност, но ако не се направи нещо по въпроса с бъговете и бавната работа, просто няма как да продължат нещата нагоре.

Наскоро се замислих много за нещата около браузърите покрай един нов проект наречен uzbl. Момчетата, които го разработват твърдят, че никой от съвременните браузъри не следва unix философията, че всяка програма трябва да прави само по едно нещо и то да го прави добре. Те казват, че не им трябва сложен потребителски интерфейс, искат удобство и най-важното - казват, че всичко - от табове, през bookmarks, до ad-blocker трябва да става извън браузъра в отделни скриптове.
Пробвах го, отзад стои webkit, използва режими на работа както VI, скритповете за bookmark и download са на тъп bash и е най-бързия браузър, който някога съм ползвал просто защото няма какво да го затормози.
Ясно е, че uzbl не е продукт за всеки, малко хора ще се хванат да разучат shortcut-ите и да настроят браузърчето така че наистина да им е удобно. Накратко тази програмка никога няма да добие голяма популярност, но отваря някои много интересни въпроси относно това как се прави качествен софтуер.

btw, Виктор (един приятел от Русе) му хареса идеята на uzbl и направи един негов си клонинг на qt, който си има дори и табове. Ако се реши да се доразвие проектчето, ще пуснем малко source пък да видим... :)

четвъртък, юни 04, 2009

PHP method chaining

class Chain{

  var $text;

  function addHello(){
   $this->text .= "Hello ";
   return $this;
  }

  function addWorld(){
   $this->text .= "World!";
   return $this;
  }

  function getText(){
   return $this->text;
  }
}

$obj = new Chain();
$text = $obj->addHello()->addWorld()->getText();
echo $text;
?>
Резултат:


Hello World!


Ей така можете да си chain-вате методи в php. Примера е идиотски, но показва общата идея без излишни глупости :)
Къде може да се използва вие си знаете. Аз писах едни active record нещица. Пести писане и най-малкото така кода ми изглежда по-добре :)

понеделник, юни 01, 2009

GNOME недомислица

От известно време забелязвам една огромна недомислица в GNOME и по специално във файловия мениджър Nautilus.
Когато тегля даден сериал от торенти съм леко нетърпелив и за това дава висок приоритет на първата серия и докато я гледам, оставям останалите да се теглят.
Проблема идва от това, че докато гледам филма той по едно време започва зверски да сече. Насича сякаш съм си пуснал full HD на стария 200 мегахерцов компютър :)
Някакъв странен процес ми вдига използването но процесора на 100%.
След дълго и продължително разследване (kill -9) се оказа, че това е процеса, който прави thumbnails на видео файловете в Nautilus. Нещата понякога се оправят когато просто изляза от папката, но понякога процеса забива и наистина си чака "убиването".
Очевидно някой е решил, че трябва да се прави нов thumbnail при всяка промяна във файла. Не особено умна идея при положение, че имаш няколко гигабайта видео, което постоянно се променя.

Решенията не са кой знае колко сложни.
Може да отваряте файла и веднага да затваряте Nautilus.
Може и просто да забраните правенето на thumbnails за видео.

и все пак
GNOME, ftw !!! :P

П.П. Това е за GNOME 2.24.1 на Ubuntu 8.10