Sbohem LispWorks - reimplementace micro-graphics

Paradigmata programování 2
Hans
Nový člen
Příspěvky: 19
Registrován: 1. Červen 2012, 12:24
Typ studia: Bakalářský
Obor: Informatika
Ročník: 3
Gender: None specified

Sbohem LispWorks - reimplementace micro-graphics

Nepřečtený příspěvekod Hans » 20. Listopad 2013, 17:39

Toto se tyka predmetu OOP, nejsem si jisty jestli to napsat do PP2 (podle stareho studijniho planu), nebo PP3 (podle semestru), kdyztak to presunte, nebo nejlepe upravte subfora tak, aby odpovidala novemu studijnimu planu.

Reimplementoval jsem knihovnu micro-graphics pomoci svobodne knihovny LTK.
Upozorneni na zacatek: pokud jste spokojeni s LispWorks, klidne je pouzivejte, budete to mit jednodussi. Toto je spis pro blazny jako ja, co nechteji pouzivat zadny proprietarni SW.

Co je k tomu potreba: knihovna LTK, ktera je jen Lispovym bindingem graficke knihovny Tk(ktera je tudiz take potreba).

Jak se to pouziva:
Knihovna je implementovana v jedinem lispovem souboru v priloze.
Je nezbytne upravit prvni radek v souboru (load "/cesta/k/ltk.lisp") tak, aby byl opravdu cestou k souboru ltk.lisp.
Pak staci soubor micro-graphics.lisp loadnout ve vasem oblibenem interpretu (zkousel jsem GNU CLISP a Clozure CL, ale teoreticky by mely fungovat vsechny, kde funguje LTK) a muzete ji pouzivat.
Dulezite: pokud chcete, aby fungovaly callbacky, musite spustit (ltk:mainloop). Pak bohuzel nemate k dispozici Listener - to lze vyresit pouzitim editoru ABLE - viz nize.

Problemy:
Ackoli jsem se pokusil implementovat snad vsechno, co umi puvodni knihovna micro-graphics, je mozne, ze jsem na neco zapomel (vim o tom, ze nefunguji callbacky destroy a activate) a urcite tam bude hromada bugu - pokud vas stvou, tak mi je nahlaste, nebo je jeste lepe opravte sami ;-)
Taky se to prekresluje celkem pomalu - LTK je na implementaci m-g moc vysokourovnovy (napr. je uz vyreseno prekreslovani, takze musim "emulovat" neprekreslovani pri resize) a urcite jsem spoustu veci nehezky zbastlil :) . Pomale prekreslovani jsem castecne vyresil tak, ze jsem pouzil ltk:canvas na zpusob backbufferu, coz sice trochu zvysi odezvu, ale zase se clovek nemusi divat, jak se mu prekresluje cely obrazek a jenom to problikne...

Reseni absence Listeneru - editor ABLE:
Pokud chcete mit zaroven callbacky a moct interagovat s Listenerem, da se to vyresit pouzitim editoru ABLE. (puvodne jsem to chtel resit pomoci vlaken, ale to by bylo dost hardcore a navic bych so omezil jen na nektere implementace Lispu)
ABLE je napsany v LTK, takze mainloop ubsluhujici eventy je spusteny (=callbacky funguji) a zaroven implementuje jednoduchy REPL, coz je presne to co chceme :)

ABLE zavisi na knihovnach trivial-gray-streams a cl-fad. Nejjednodussi zpusob jak ho ziskat je QuickLisp.
Staci stahnout http://beta.quicklisp.org/quicklisp.lisp, loadnout ho, a zadat prikazy:

Kód: Vybrat vše

(quicklisp-quickstart:install)
(ql:quickload :able)

to stahne ABLE i jeho zavislosti.
Je nutne zakomentovat/smazat druhy radek (ltk:start-wish) v souboru micro-graphics.lisp. (wish je proces ktery provadi samotne vykreslovani pomoci Tk, ale editor ABLE ho spousti sam)
Pak je jeste pohodlne vytvorit si maly lispovy "skript" na spusteni editoru - ten muj vypada takto:

Kód: Vybrat vše

(load (merge-pathnames "quicklisp/setup.lisp"
                       (user-homedir-pathname)))
(ql:quickload :able)
(setf able::*window-width* 680)
(setf able::*window-height* 700)
(setf able::*window-y* 0)
(setf able::*buffer-font* "Console 12 normal roman")
(able::start)


Prilozil jsem i screen jak to pak cele vypada.
Nemáte dostatečná oprávnění pro zobrazení souborů připojených k tomuto příspěvku.

Avatar uživatele
martlin
Nový člen
Příspěvky: 4
Registrován: 30. Září 2012, 23:17
Typ studia: Bakalářský
Obor: Aplikovaná informatika
Ročník: 2
Místo/Bydliště: Olomouc
Gender: None specified
Kontaktovat uživatele:

Re: Sbohem LispWorks - reimplementace micro-graphics

Nepřečtený příspěvekod martlin » 20. Listopad 2013, 21:58

Na Lispworks se hodně nadává to je fakt. Už jen proto, že to hodně lidem, především na linuxu nefunguje.

Ale na mém wheeze (Linux 3.2.0-4-686-pae #1 SMP Debian 3.2.51-1 i686 GNU/Linux) jede krásně a navíc jsem měl tu čest i s méně uživatelsky přívětivými programy, takže jsem se s tím po pár měsících nakonec i naučil pracovat ;-)
„Informatika se nezabývá počítači o nic více než astronomie dalekohledy.“ – Edsger Dijkstra

Hans
Nový člen
Příspěvky: 19
Registrován: 1. Červen 2012, 12:24
Typ studia: Bakalářský
Obor: Informatika
Ročník: 3
Gender: None specified

Re: Sbohem LispWorks - reimplementace micro-graphics

Nepřečtený příspěvekod Hans » 20. Listopad 2013, 22:11

martlin napsal:navíc jsem měl tu čest i s méně uživatelsky přívětivými programy, takže jsem se s tím po pár měsících nakonec i naučil pracovat ;-)


No me prave nejde o uzivatelskou privetivost, ale o to, ze LispWorks je tricetimegabajtovy blob, jehoz assembler bych mohl studovat cely zivot a stejne bych zemrel aniz bych vedel co vlastne vsechno dela. Takovym programum ja svuj komp nepropujcuju :)

honza_c
Nový člen
Příspěvky: 12
Registrován: 3. Srpen 2012, 16:08
Typ studia: Bakalářský
Obor: Aplikovaná informatika
Ročník: 2
Místo/Bydliště: Přerov
Gender: None specified

Re: Sbohem LispWorks - reimplementace micro-graphics

Nepřečtený příspěvekod honza_c » 20. Listopad 2013, 22:44

LW sice není zrovna dvakrát ideální IDE, ale už jsem si taky zvykl. Na desktopu mi LW funguje, na laptopu zaboha ne.

Stolní počítač: Kubuntu 12.04 LTS 64bit, doinstalované knihovny libmotif3, motif-clients a libXpm4 ve 32bit verzích, LispWorks 6.* nefunguje, LispWorks 5.1 běhá v pohodě
Linux jan-desktop 3.8.0-29-generic #42~precise1-Ubuntu SMP Wed Aug 14 16:19:23 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Notebook: Debian testing 64bit, doinstaloval jsem stejné knihovny v 32bit jako na desktopu, nefunguje žádná verze LW.
Linux thinkpad 3.10-3-amd64 #1 SMP Debian 3.10.11-1 (2013-09-10) x86_64 GNU/Linux
Když se pokusím spustit binárku LW, skončím s chybovou hláškou, že soubor, na který jsem zrovna dvakrát klikl myší neexistuje:

Failed to execute child process "/usr/local/lib/LispWorksPersonal/lispworks-personal-6-1-1-x86-linux" (No such file or directory).

Zkoušeno jak u verze 5, tak 6 (čistá instalace), stejnou chybu jsem měl i když jsem složku s instalací funkčního LW na desktopu do NTB zkopíroval přes ssh. Google řešení nezná. Průser je, že ve 64bit verzi není edice Personal a já nejedu na 32bit systému... Takže na NTB mi nezbývá nic než si virtualizovat Windows. Hansovo řešení určitě vyzkouším, ale radši bych opravdu rozjel ten LW. Někdo nějaký tip co ještě vyzkoušet?

Hans
Nový člen
Příspěvky: 19
Registrován: 1. Červen 2012, 12:24
Typ studia: Bakalářský
Obor: Informatika
Ročník: 3
Gender: None specified

Re: Sbohem LispWorks - reimplementace micro-graphics

Nepřečtený příspěvekod Hans » 21. Listopad 2013, 00:15

honza_c napsal:Někdo nějaký tip co ještě vyzkoušet?

Jedine bych ti mohl zkusit hodit svoje 6.0 na flashku, fungovaly zatim vsude (bez instalace), kam jsem je zkopiroval (uploadnul bych je sem, ale jsou tu dementni omezeni...)

w4rr10r
Pokročilý
Příspěvky: 389
Registrován: 10. Červen 2011, 10:57
Typ studia: Magisterský
Obor: Informatika
Ročník: 1
Gender: None specified

Re: Sbohem LispWorks - reimplementace micro-graphics

Nepřečtený příspěvekod w4rr10r » 21. Listopad 2013, 01:03

honza_c napsal:Někdo nějaký tip co ještě vyzkoušet?


32bitové Ubuntu 10.04 ve virtuálce nebo RPM od výrobce na odpovídající distribuci (openSuSE, možná Fedora, nemám čas to zkoušet).

Nebylo by lepší věnovat se problémům s LW ve vlákně věnovaném... LW?
návod k připojení na neoficiální/studentský IRC kanál: http://ur1.ca/fegw1

klávesnicový guru, yo!

Hans
Nový člen
Příspěvky: 19
Registrován: 1. Červen 2012, 12:24
Typ studia: Bakalářský
Obor: Informatika
Ročník: 3
Gender: None specified

Re: Sbohem LispWorks - reimplementace micro-graphics

Nepřečtený příspěvekod Hans » 4. Prosinec 2013, 10:41

Nova verze s primitivni provizorni implementaci get-string-extent.

Bohuzel nemuzu editovat prvni (zadny?) post (proc?????).
EDIT: zjevne muzu, ale je to nejak casove omezene (proc?????).
Nemáte dostatečná oprávnění pro zobrazení souborů připojených k tomuto příspěvku.

Avatar uživatele
lukas.beran
Pokročilý
Příspěvky: 336
Registrován: 24. Září 2010, 10:59
Gender: Male
Kontaktovat uživatele:

Re: Sbohem LispWorks - reimplementace micro-graphics

Nepřečtený příspěvekod lukas.beran » 4. Prosinec 2013, 19:15

Omezené je to z důvodu, aby nešlo zpětně znehodnocovat příspěvky v tématu. Navíc to nemá ani moc opodstatnění upravovat příspěvky zpětně. Když už se nějak diskuze rozjede a další uživatelé reagují na nějaký příspěvek, tak by pak pozdější editace prvních příspěvků znehodnotila diskuzi, protože následné reakce uživatelů by směřovaly na něco, co již není k dispozici, a téma by bylo zbytečně zmatené a celá diskuze znehodnocená.
Ing. Lukáš Beran
Partner Technical Consultant ve společnosti Microsoft
https://www.lukasberan.cz/ - osobní blog s technickými články a návody

w4rr10r
Pokročilý
Příspěvky: 389
Registrován: 10. Červen 2011, 10:57
Typ studia: Magisterský
Obor: Informatika
Ročník: 1
Gender: None specified

Re: Sbohem LispWorks - reimplementace micro-graphics

Nepřečtený příspěvekod w4rr10r » 4. Prosinec 2013, 19:33

lukas.beran napsal:Omezené je to z důvodu, aby nešlo zpětně znehodnocovat příspěvky v tématu. Navíc to nemá ani moc opodstatnění upravovat příspěvky zpětně. Když už se nějak diskuze rozjede a další uživatelé reagují na nějaký příspěvek, tak by pak pozdější editace prvních příspěvků znehodnotila diskuzi, protože následné reakce uživatelů by směřovaly na něco, co již není k dispozici, a téma by bylo zbytečně zmatené a celá diskuze znehodnocená.


Nesmysl. Ani na mnohem větších fórech s tím není problém a naopak to umožňuje udržovat aktualizovaný obsah v případech právě takových jako toto vlákno. Komentáře zůstanou relevantní, jestliže se budou používat citace.

Díky tomu jde psát recenze, návody apod. nebo organizovat různé záležitosti — malá ukázka [1], [2] a [3].

Pokud se někdo zcenzuruje, obvykle nebývám problém vytáhnout původní obsah z cache nebo archive.org, mám s tím zkušenosti.
návod k připojení na neoficiální/studentský IRC kanál: http://ur1.ca/fegw1

klávesnicový guru, yo!

Avatar uživatele
lukas.beran
Pokročilý
Příspěvky: 336
Registrován: 24. Září 2010, 10:59
Gender: Male
Kontaktovat uživatele:

Re: Sbohem LispWorks - reimplementace micro-graphics

Nepřečtený příspěvekod lukas.beran » 4. Prosinec 2013, 21:45

Já s tím mám právě zkušenosti velmi negativní. A dohledávat cokoliv v cache, zálohách nebo archivu je akorát otrava a zdržování.

Od toho jsou to diskuze, aby se s postupem času dál rozvíjely v časové ose. Takže pokud mám něco nového, přidám nový příspěvek. Všichni se o tom dozví, protože vidí nový příspěvek. Zasahování do starších příspěvků je dle mého velmi nepraktický zásah do přirozeného vývoje diskuze v čase, jde v podstatě o jakousi „změnu historie“. To je právě ten zásadní rozdíl oproti různým blogům apod., kde má smysl úprava blogpostu, zde však smysl nemá a je kontraproduktivní.

A právě ty zbytečné citace posledních příspěvků akorát celou diskuzi prodlužují a více znepřehledňují. Proto jsem také u posledního příspěvku nahradil tlačítko pro citaci tlačítkem pro odpověď. Citovat by se měly jen příspěvky, které nejsou bezprostředně předchozí a citovat by se měla pouze ta část, na kterou skutečně reaguji.
Ing. Lukáš Beran
Partner Technical Consultant ve společnosti Microsoft
https://www.lukasberan.cz/ - osobní blog s technickými články a návody

Hans
Nový člen
Příspěvky: 19
Registrován: 1. Červen 2012, 12:24
Typ studia: Bakalářský
Obor: Informatika
Ročník: 3
Gender: None specified

Re: Sbohem LispWorks - reimplementace micro-graphics

Nepřečtený příspěvekod Hans » 23. Leden 2014, 15:37

Nova verze, snad uz posledni:
- implementoval jsem get-image-extent, takze to ma uz vsechny funkce (a get-string-extent jsem vyresil pouzitim monospace fontu)
- pridana detekce ABLE (pomoci find-package), takze clovek nemusi za/odkomentovavat start-wish


P.S.: Je hezke, ze se temata uz jmenuji podle noveho studijniho planu, ale takhle je v PAPR2 vsechno co patri do OOP, a PP3 je snad uplne smazane :D

P.P.S: Myslim, ze vzhledem k navstevnosti tohoto fora by po povoleni editace prispevku (alespon prvniho!) nenastala zadna apokalypsa.
Nemáte dostatečná oprávnění pro zobrazení souborů připojených k tomuto příspěvku.

w4rr10r
Pokročilý
Příspěvky: 389
Registrován: 10. Červen 2011, 10:57
Typ studia: Magisterský
Obor: Informatika
Ročník: 1
Gender: None specified

Re: Sbohem LispWorks - reimplementace micro-graphics

Nepřečtený příspěvekod w4rr10r » 24. Leden 2014, 07:07

PP3 je v archivu.
návod k připojení na neoficiální/studentský IRC kanál: http://ur1.ca/fegw1

klávesnicový guru, yo!


Vrátit se na “KMI/PAPR2”

Kdo je online

Uživatelé prohlížející si toto fórum: Nejsou tu žádní registrovaní uživatelé a 1 host