Šajā rakstā gribu pastāstīt par atvērtā pirmkoda programmu Jmol. Tā ir molekulu telpiskās struktūras vizualizācijas programma, kas rakstīta programmēšanas valodā Java. Tās iespēju klāstā ietilpst dažādu failu formātu, kvantu ķīmijas aprēķinu programmu datu lasīšana kā arī daudzstruktūru failu animēšana.

Tā kā Jmol ir rakstīts programmēšanas valodā Java, tad to iespējams darbināt uz visiem datoriem, kas atbalsta Javu un mūsdienās tas nozīmē praktiski ikvienu datoru. Programmas, kas rakstītas izmantojot Javu tiek kompilētas (pārtulkotas Java baitkodā), bet atšķīrībā no daudzām citām programmēšanas valodām, kur kompilētā programma darbojas tikai uz vienas noteiktas procesora arhitektūras, Java programmas nepārkompilējot darbojas uz visām sistēmām, jo tās baitkodu interpretē Javas Virtuālā Mašīna (JVM), kas katrā datorā lieto vienu un to pašu valodu.

Prakstiski katrs mūsdienu interneta pārlūks arī atbalsta Javu, tāpēc Jmol ir iespējams ievietot interneta lapās un lietotājs var apskatīt vizualizēto failu kā arī interaktīvi darboties ar modeli neveicot nekādu papildus programmatūras instalēšanu (Jmol programmiņa tiek lejupielādēta automātiski un darbojas, kamēr apskatāt konkrēto tīkla lapu). Šādu lapu piemērus var apskatīt Jmol demonstrācijas lapās vai, piemēram, Oksfordas Universitātes lapā "Molecule of the Month".

Tā pat Jmol iespējams izmantot citās programmās, lai vizualizētu molekulu struktūras. Kā vienu šādas programmas piemēru var minēt Bioclipse, kas tiek veidots kā ķīmijas un bioinformātikas darbagalds daudzu uzdevumu automatizēšanai. Šīs programmas 3D modeļu vizualizācijas funkcijas pilda Jmol. Līdzīgi ir iespējams veidot pašiem savas programmas.

Kā jau atvērtā pirmkoda projektā, arī Jmol ir sava izstrādātāju un lietotāju sabiedrība, kas uztur un virza tā attīstību. Tajā pastāv vairākas grupas, kas saistītas ar dažādām ķīmijas un bioķīmijas nozarēm. Lai gan Jmol spēj attēlot jebkuras molekulas telpisko struktūru, kamēr tā ir rakstīta kādā no ķīmijas failu formātiem, ko tas atbalsta (xyz, pdb, mol u.c.), tomēr savas atšķirības ikdienas lietošanā pastāv starp organisko ķīmiju, bioķīmiju, kristalogrāfiju vai kvantu ķīmijas aprēķiniem. Tā piemēram ja organiķiem svarīgāki būtu atomu attālumu un saišu leņķu mērījumi, tad bioķīmiķiem svarīgāk būtu vizualizēt proteīnu otrējo struktūru, bet kvantu ķīmiķi izmantotu Molekulāro Orbitāļu (MO) vizualizāciju. Tad arī atkarībā no šo grupu aktivitātes un pamata izstrādātāju interesēm kādas iespējas tiek vairāk attīstītas kā citas.

Pēdējos Jmol laidienos galvenokārt pateicoties sadarbībai ar MOPAC un GAMESS lietotāju kopienām papildus uzmanība ir tikusi pievērsta Jmol kvantu ķīmijas datu vizualizēšanas funkcijai. Tā pat uzlabota programmas lietojamība un skriptu rakstīšanas iespējas.

Jmol vēsture

Sākotnēji Jmol tika veidots kā programmas XMol (molekulu vizualizācijas programma, kas tika izstrādāta Minesotas Superkompjūteru centrā) aizstājējs. Lai gan XMol tika izplatīts, tā pirmkods nebija pieejams un pati programma netika uzturēta un novecoja. Tas savukārt radīja nepieciešamību pēc līdzīgas programmas. Jmol projekta aizsācējs Dan Gezelter izvēlējās to padarīt par atvērtā pirmkoda projektu, lai Jmol nepiemeklētu XMol liktenis. Lai gan Jmol vēl nav pilnībā visa XMol funkcionalitāte, tomēr dažos aspektos Jmol to ir krietni apsteidzis. Nākotnē Jmol tiks iekļautas aizvien komplicētākas un spēcīgākas funkcijas.

Jmol tika aizsākts kā OpenScience projekts, kas veltīts atvērtā pirmkoda zinātnei paredzēto programmu rakstīšanai un izdošanai.

Vēlāk projekta vadību pārņēma Bradley A. Smith, kurš paveica lielu darbu projekta un pašas programmas attīstībā. Viņa vadībā izveidojās Jmol lietotāju grupa, kas deva papildus ieguldījumu projekta attīstībā.

2002. gada beigās par projekta līderi kļuva Egon Willighagen un tika uzsākts darbs pie Jmol iekļaušanas ķīmijas programmatūras izstrādes komplektā (The Chemical Development Kit), ko Dan, Egon un Christoph Steinbeck bija plānojuši jau 2000. gada septembrī.

Tāpat 2002. gada beigās projektam pievienojās Miguel Howard, kura mērķis bija palīdzēt izveidot Jmol par pieņemamu Chime spraudņa aizvietotāju. Viņš vēlāk paveica lielu darbu Jmol attīstībā gan pārtulkojot to spāniski, gan pārrakstot tā 3D grafikas dzinēju, kas ļauj Jmol iztikt bez specializētas grafikas tehnikas (piem., spēcīgas grafiskās kartes), gan pielāgojot programmu daudz lielāku molekulu attēlošanai un uzlaboja jaunu failu formātu atbalsta pievienošanas iespējas.

Jau 2003. gada beigās tika sākts pagarināts testa periods, kura laikā daži Jmol lietotāji visā pasaulē palīdzēja programmas izstrādē testējot, skaidrojot ķīmijas un Chime skriptu principus.

Tā visa rezultātā 2004. gada decembrī tika izdots Chime spraudņa aizstājējs - Jmol versija 10.0, kam 2006. gada aprīlī sekoja uzlabota versija 10.2. 2007. gada februārī tika izdota Jmol versija 11.0, kas iekļāva ievērojamu daudzumu jaunu funkciju.

Kā redzams pēdējos gados Jmol attīstība ir bijusi visai strauja un pašlaik tas ir lietojams molekulu modeļu vizualizācijai, prezentāciju veidošanai kā arī papildus informācijas (atomu attālumu, saišu leņķu u.c.) iegūšanai. Katrā ziņā jauniem projektiem noteikti būtu iesakāms izmantot Jmol.


edit post

Ievads

Publicēts 2007-09-14, etiķetes:

Pēdējā laikā risinot dažādas ķīmijas problēmas diezgan daudz izmantoju datoru. Tā kā skolā un universitātē informātikas stundās esmu ticis iepazīstināts tikai ar populārākajām Windows® biroja programmām, tad nācās pašam meklēt un iepazīties ar programmām, ko izmantot tieši ķīmijā. Tāpēc vēlējos izveidot resursu latviešu valodā, kas atvieglotu šādus meklējumus.

Sāku par to interesēties, jo parādījās interese par kvantu ķīmijas aprēķiniem un tā kā uzreiz nekādas programmas nopirkt nevarēju, tad skatījos pēc pieejamajām alternatīvām - bezmaksas un atvērtā pirmkoda projektiem.

Kā izrādās šādu programmu ir diezgan daudz, taču to apgūšana bieži prasa lielāku darbu, kā komerciālā programmatūra. Neskatoties uz to ir atrodamas daudzas programmas, kas spēj ļoti labi veikt savu uzdevumu un bieži ir elastīgākas par komerciālajām programmām.

Atvērtā pirmkoda un brīvās programmas ir īpaši piemērotas zinātnisko darbu veikšanai, jo tad praktiski ikvienam, kurš lasa Jūsu publikācijas vai rezultātus ir iespēja vienkārši lejupielādēt attiecīgo programmu no interneta, nemaksājot lielas naudas summas, un atkārtot aprēķinus vai eksperimentus. Tas veicina zinātnieku savstarpējo sadarbību un zinātnes attīstību kopumā.

Šajā blogā centīšos dot ieskatu atvērtā pirmkoda programmatūras pasaulē, galveno uzsvaru liekot uz ķīmijā izmantojamo programmatūru.


edit post

Atvērtā pirmkoda iniciatīva

Publicēts 2007-09-13, etiķetes: ,

Tā kā domāju diezgan daudz apskatīt tieši brīvās un atvērtā pirmkoda programmas, tad iespējams, ka šeit būtu vietā īss atvērtā pirmkoda idejas un kustības apraksts. Es šeit nepretendēju uz pilnīgu un izsmeļošu izklāstu, vēlos vienkārši dot īsu skaidrojumu un norādes uz citiem informācijas avotiem, lai lasītāji, kas ar to saskarās pirmo reizi būtu lietas kursā, par ko tad šeit īsti iet runa.

Kas ir programmas pirmkods?

Programmas pirmkods ir komandu virkne, kas rakstīta cilvēkam saprotamā programmēšanas valodā. Šīs komandas tiek izmantotas, lai ar to palīdzību liktu datoram veikt kādu noteiktu uzdevumu.

Tā kā datori izmanto valodu, ko cilvēkiem ir ārkārtīgi grūti lietot neizmainītā veidā (valodu, kas sastāv no rīkojumiem un datiem binārā formā - 1 un 0), tad praktiski visas programmas tiek rakstītas kādā programmēšanas valodā, kas tuvāka cilvēku lietotajai (parasti angļu). Pastāv vairāki programmēšanas valodu līmeņi, kas būtu atšķirami pēc tā, cik tuva tā ir cilvēku valodai, bet neatkarīgi no tā, kuru lietojam, lai programma varētu veikt iecerēto uzdevumu, tās pirmkods ir jāpārtulko no programmēšanas valodas uz valodu, ko lieto konkrētais dators (mašīnvalodu). Pastāv divi veidi, kā tas var tikt izdarīts - pārtulkojot pirmkodu (kompilējot) un tad darbinot izveidoto programmu, vai veicot programmas pirmkoda tulkošanu (interpretēšanu) izpildes laikā.

Sakompilētā programma principā ir fails, kas rakstīts cilvēkam nelasāmā un nesaprotamā formā, tādēļ no tā nav iespējams uzzināt, tieši kādā veidā programma veic kādu darbību un ko tā vispār dara.
Ja programma rakstīta programmēšanas valodā, kas izmanto interpretatoru (programmu, kas veic pirmkoda tulkošanu un izpildi), tad parasti tās pirmkods ir pieejams un izlasāms.

Atvērtā pirmkoda idejas un kustības vēsture

Vairums programmu tiek piegādātas lietotājam kompilētā veidā. Tātad programmas lietotājs patiesībā nemaz nezina, ko un kā tā programma īsti dara un nevar izlabot kādu tajā atrastu kļūdu vai pielāgot to savām vajadzībām.

Situācija bija pavisam citāda, kad vēl datori nebija tik ļoti attīstījušies un tie bija mazāk pieejami. Tad cilvēki brīvi apmainījās ar pirmkodu un varēja to uzlabot, pielāgot savām vajadzībām vai izmantot paši savās programmās. Taču tas mainījās, kad datori nonāca līdz ikdienas lietotājam un firmas sāka pārdot programmatūru. Tās bija ieinteresētas neizplatīt programmu pirmkodu, lai pircējs vienmēr nāktu pie tām un maksātu, taču tā lietotājam tiek liegta praktiski jebkāda iespēja pašam labot programmu vai pielāgot to kādiem citiem mērķiem.

Daži programmētāji to uztvēra, kā viņu brīvības ierobežošanu un juta ka tas bremzē datorzinātnes attīstību, tāpēc tie padarīja pašu rakstītās programmas un to izejas kodus brīvi pieejamus un aicināja citus darīt tā pat. 1983. gada 27. septembrī Richard Stallman paziņoja par plāniem veidot GNU operētājsistēmu, kas pilnībā sastāvētu no atvērtā pirmkoda programmatūras. Darbs pie tās tika uzzākts 1984. gada 5. janvārī, kad viņš aizgāja no darba Masačūsetsas tehnoloģoskajā institūtā, lai tas nevarētu apdraudēt izveidotās sistēmas brīvo pieejamību. Viņam pievienojās daudzi citi programmētāji, kas pārsvarā brīvajā laikā nodarbojās ar atvērtā pirmkoda programmu izstrādi. 1985. gada oktobrī R. Stallman izveidoja Brīvās Programmatūras fondu (FSF - Free Software Foundation), kas nodarbojās ar atvērtā pirmkoda projektu atbalstīšanu, gan programmējot, gan nodarbojoties ar brīvās programmatūras juridiskajiem jautājumiem. Viņi izveidoja atvērtā pirmkoda analogus praktiski visām tajā laikā izplatītajā Unix operētājsistēmā lietotajām programmām (teksta redaktoriem, kompilatoriem u.c.).

Deviņdesmito gadu sākumā bija uzrakstītas praktiski visas darbam ar datoru nepieciešamākās programmas, nebija pabeigta tikai viena - operētājsistēmas kodols. Tajā laikā Linus Torvalds uzrakstīja operētājsistēmas kodolu, kas bija ļoti tuvs Unix® sistēmai un tā kā daudzi programmētāji visā pasaulē bija palīdzējuši ar padomiem, testēšanu un labošanu, tad viņš to nolēma padarīt visiem pieejamu (arī tā pirmkodu). Šī sistēma tika nosaukta par Linux. Tas deva iespēju darbināt un izmantot datoru izmantojot tikai atvērtā pirmkoda programmatūru.

1997. gadā Eric Raymond publicēja rakstu "Katedrāle un tirgus laukums" ("The Cathedral and the Bazaar"), kurā pirmo reizi aprakstīja hakeru kultūru un attālināto programmatūras izstrādi. Tas radīja lielas pārmaiņas gan pašā hakeru sabiedrībā, gan arī ārpus tās un deva jaunu impulsu atvērtā pirmkoda idejas popularizēšanā. Tas palīdzēja Netscape® nākamā gada sākumā pieņemt lēmumu par viņu populārā interneta pārlūka izejas koda publiskošanu un izdošanu kā atvērtā pirmkoda un bezmaksas programmu, kas bija pirmais šāda veida gadījums (bet ne pēdējais). Vēlāk tika izdomāts termins "atvērtais pirmkods" (angl. opensource) un izveidota Atvērtā Pirmkoda iniciatīva (OSI - Opensource initiative), kura kalpoja kā vienota organizācija atvērtā pirmkoda programmatūras jautājumu risināšanai, kam uzticējās gan hakeri, gan biznesa un valdību pārstāvji.

Linux nav vienīgā atvērtā pirmkoda operētājsistēma mūsdienās (vēl var minēt dažādas BSD, DOS u.c.) un atvērtā pirmkoda programmas pastāv praktiski visām izplatītākajām operētājsistēmām (arī Windows).

Diemžēl Latvijas skolās lielākoties par šādām lietām nemāca, un pat augstākajās mācību iestādēs un valsts institūcijās izmanto praktiski tikai MS Windows produkciju, lai gan bieži brīvās programmatūras izmantošana tiek uzskatīta par valsts suverenitātes un brīvības izpausmi, nemaz nerunājot par iespējamo līdzekļu ietaupījumu un universitāšu studentu labāku datorlietošanas iemaņu apguvi.

Hakeris vai krakeris?

Hakeris (angl. hacker) - programmētājs, kas ir sasniedzis augstu meistarības līmeni un gūst gandarījumu veicot sarežģītus tehniskus trikus, lai risinātu programmēšanas problēmas tā parādot savas zināšanas, atjautību un spējas.

Krakeris (angl. cracker) - cilvēks, kurš izmanto savas programmēšanas un datorsistēmu zināšanas, lai veiktu ļaunprātīgas darbības, piem., ielaužoties citu cilvēku datorsistēmās un zogot informāciju vai graujot sistēmu. Daļa no šiem cilvēkiem nodarbojas vienkārši ar vandālismu.

Tātad cilvēki, kas raksta atvērtā pirmkoda programmatūru ir hakeri (rada), bet cilvēki, kas ielaužas datorsistēmās ir krakeri (lauž).

Atvērtais pirmkods un likums

Atvērtā pirmkoda programmatūru jebkurš var lietot, modificēt un izplatīt uz tādiem pašiem nosacījumiem, kā to saņēma. Lai šī brīvība neradītu dažādus pārpratumus un tās neatbilstošu izmantošanu, tad arī atvērtā pirmkoda programmatūra ir licencēta. Atšķirībā no maksas un slēgta pirmkoda programmām, par šo licenci nav jāmaksā un tā nosaka, ka kopā ar programmu ir pieejams arī tās izejas kods.

Pastāv dažāda veida atvērtā pirmkoda licences, bet par zināmākajām varētu uzskatīt GPL (General Public Licence) un LGPL (Lesser GPL).


Tālākai lasīšanai

*) Linux centrs: linux.edu.lv
*) Vikipēdija: http://lv.wikipedia.org/wiki/Atvērtais_pirmkods
*) Eric Raymond, "Katedrāle un tirgus laukums" - iesaku izlasīt :)

Reinis

edit post