Lego Mindstorms

András meglepetésként hozott a tengeren túlról nekem egy ilyen Lego szerkentyűt – a reptéren meg se kérdezték tőle mi ez a két nagy doboz -, én meg nekiálltam és portoltam a hozzá adott C fordítót AmigaOS-re és MorphOS-re… Mire kész lettem vele, kiderült, már más is megtette

A hobbi robotika kedvelőinek minden bizonnyal ismerősen cseng a Lego Mindstorm név, amely egy igen komoly, többszáz elemből álló csomag, nem kimondottam gyerekek számára. A hétszáznál több elemben 2 motor, érintésérzékelők, fényérzékelők, USB adó/vevő és a lényeg, egy RCX mikroszámítógép is található. Ebben a sárga processzor és memória kockában lehet programot futtatni, és a program képes vezérelni a motorokat, és a többi hasonló mozgó alkatrészt, továbbá a szenzoroktól képes adatokat fogadni. A Lego természetesen ad a csomaghoz egy Windows-os programot, ami egyfajta (GUI-s, csilivili) programozásra is alkalmas, viszont az igazi robotmániákusok nem elégszenek meg ennyivel, nekik alacsonyabb szintű nyelv kell. Erre született az NQC (Not Quite C), egy C szintaktikához nagyon hasonlatos script nyelv, amelyet lefordítva az RCX mikrokódját kapjuk eredményül, amit a kockába eljutattva le is tudunk futtatni.

Az NQC fut Windows-on, MacOSX-en és immár AmigaOS-en is, támogatja – Poseidon USB stack-en keresztül – az USB-s adóvevőt, az RCX 1, RCX 2, Cybermaster, Scout és Spybotics processzorokat. A program futtatásához AmigaOS 3 vagy újabb rendszer szükséges, 68020-as processzor, és 1 MB üres memória. Az RCX-szel való kommunikációhoz ajánlatos egy USB hardware, és az ahhoz adott meghajtóprogram is.

A kész program RCX-be töltéséhez a Lego Mindstorms SDK2-bétában található firmware is kell, ezt az alanti linkről le lehet tölteni.

http://mindstorms.lego.com/sdk2beta/default.asp
http://mindstorms.lego.com/
http://www.baumfamily.org/nqc/index.html

nqc.gif

rcx.jpg

Developer site engine

Készítettem egy komplett, a fejlesztést segítő engine-t, a működő mirror-ja itt található: http://amiga.sourceforge.net/amigadevhelp/

Egy új Amigás fejlesztői site

Nemrégiben ezen sorok írója a www.php.net tanulmányozása közben megkérdezte önmagától hogy vajon miért nem készült még egy olyan site, amely összefogja az amigás fejlesztői információkat, fórumot ad a programozóknak, letölthető példaprogramokkal segíti a fejlesztőket. A kérdést egy egyszerű válasz követte; csinálni kell egyet, nem az okokat keresni. Néhány nap alatt el is készült egy site engine, amely remélhetőleg sokakat vonz majd, és információkkal feltöltve minden amigás fejlesztőnek tud segíteni ennek a brilliáns operációs rendszernek a minél jobb megismeréséhez és kihasználásához. Csoportokba vannak rendezve az egyes programnyelvek, API-k, felületetek. A csoportokon belül függvényekre van bontva az adatbázis, minden egyes függvényhez külön fórum illetve példaprogram gyűjtemény tartozik, a kereső rendszer képes töredékszóra illetve valamilyen szintig hasonlóságra is keresni, kereszthivatkozásokat tud megjeleníteni az egyes csoportok függvényei között, valós időben analizálja a megjelenítendő szöveget, és a már adatbázisban lévő függvényekre automatikusan hivatkozást készít, stb. Jelenleg 10 csoportban közel 6000 függvény leírása és többszáz példaprogram van az adatbázisban.

http://dev.amiga.tm

Nemrégiben említést tettünk a hazai fejlesztésú és karbantartású Amiga fejlesztői site létrejöttéről, most ismét történt vele kapcsolatban egy-két említésre méltó dolog. Elõször is a hazai amiga.hu domain-ba is integrálva lett (http://dev.amiga.hu) köszönet érte a domain bejegyzőinek illetve karbantartóinak. Továbbá Rajnai – Rachy – Álmosnak köszönhetően két új csoport is bekerült a rendszerbe, a Warp3D – mint a PowerPC-s amigák első számú kernele – és az AHI, mint az egyetlen széles körben elfogadott amigás hardware független audio rendszer. Mindkét csoport tartalmazza a fejlesztéshez szükséges összes információt. A fejlesztői site egy új résszel bővült, file archívumot kapott, ahol a programozáshoz kapcsolódó anyagok kapnak helyet, úgy mint fordítók, interpreterek, debuggerek, GUI szerkesztők, editorok, teljes dokumentációk, és hardfile-ok. Ez utóbbiból az 1.5-ös is kiadásra került, megkönnyítendő az UAE-n vagy Amithlon-on fejlesztõk dolgát. Ezen hardfile letöltésével minden olyan programhoz hozzájuthat a fejleszteni vágyó amigás amellyel fordíthat, debug-olhat, szerkeszthet, konvertálhat, egy teljes feljesztői dokumentáció és POSIX környezet is segíti az indulásban. Jelenleg Assembly és C nyelv van a támogatottak listáján, de az igen aktív D community unszolására hamarosan ez a fordító is belekerül a csomagba.

For those who are using WinUAE or who wish to download a complete development setup, LouiSe’s GCC Environment may be a good place to start. Although LouiSe no longer maintains this environment it is still the quickest and easiest solution to begin programming on the Amiga. If you’re new to Amiga programming and don’t already have a compiler, I recommend that you download and install LouiSe’s development environment. An archive of LouiSe’s excellent Amiga developer’s web site is available with loads of useful information for any Amiga programmer. The development environment is linked to at the top of the page, just below the banner ad and is available as a hardfile for use with WinUAE or as an archive for installation on a native Amiga. This environment includes a compiler, assembler, editor, and everything else you need to begin programming.

NOTE: If you’re using the WinUAE hardfile with LouiSe’s development environment, you should make it the primary boot partition and create a second partition for your work since the original hardfile does not contain a great deal of extra space.

amidev.jpg

COP, COPng – Titkosítás, tömörítéssel

Státusz: megvalósítva

Mániám volt régóta, hogy egy kombinált megoldással egyidőben lehessen az adatátvitelt titkosítani és tömöríteni. Nekiálltunk kidolgozni egy ilyen software-t, el is készült – multiplatform megoldásként – először mint port-forwarder (COP), majd egy teljes értékű layer3, layer2 VPN (COPng).

A következő lépés a mobil készülékek számára egy hasonló megoldás, JAVA MIDP nyelven…

NewsSpeech a hírfelolvasó!

Egy kis segítség a manapság egyre (hír)éhesebb hírvadászoknak! A NewsSpeech képes a számára előre definiált site-okról leszedni, analizálni illetve elmondani – robothangon természetesen – a friss híreket. Ezt az AmigaOS jól bevált narrator.device-án keresztül teszi, felhasználva a translator.library többnyelvű – nyelvenkénti akcentus file-okkal – megszólalást is lehetővé tévő verzióját. Természetesen a magyar akcentus file legfrisebb verziója is helyet kapott a csomagban, méghozzá a közel fél éve kiadott előző verzióhoz képest nagyságrenddel jobb érthetőségi fokkal (elég sokat javítgattam rajta a program tesztelése során, illetve az LSDictionary használóktól kapott visszajelzések alapján is). A programhoz bárki csinálhat saját site definíciós file-okat, ehhez célszerű megnézni a mellékelt példákat, és azok alapján nekikezdeni.

Az egyes site-oknál meg kell adni azt az URL-t ahonnan a híreket tartalmazó oldalt le lehet tölteni, a hír sorok elejét és végét jelző maszkokat, az oldalak újraolvasási idejét illetve a letöltést és a megszólalást végző parancsok paramétereit és helyét. Jelenleg a letöltést a HTDump végzi, a megszólaltatást pedig a Say parancs. Ez utóbbinál célszerű az adott híroldal nyelvének megfelelő akcentust is megadni paraméterként. Jelenleg a hazai oldalak közül az MTI, a HÍRKERESŐ nagyon jó és friss hír gyűjteményét és természetesen az AMIGA.hu híroldalát kíséri figyelemmel a program.

A futtatáshoz mindössze egy Shell ablakra van szükség, ahol a megfelelő paraméterek vagy a start.amiga script elindításával saját életre kell a program, és folyamatosan mondja a legfrissebb híreket.

A csomagban a forráskód is megtalálható, továbbá a Linux-os indításhoz és megszólaltatáshoz is található egy kis segítség. Érdekességképpen meg kell jegyezni, hogy UAE alatt is fut a NewsSpeech, viszont a nem túl tökéletes hang emuláció miatt – amely a narrator.device-hoz úgy tűnik elengedhetetlen – a beszéd néha teljesen szaggatottá és érthetetlenné válik.

A HTDump egy igen érdekes, és az internetet aktívan használó kollégáknak nagyon jó szolgálatot tévő programról, amely képes egy adott WEB szerver bármely oldalát letölteni akár úgy is, hogy szimulálja egy adott böngésző
program működését. A HTDump el tudja küldeni mind a FORM-okat (GET és POST módban is), mind a Cookie-kat külső file-ből vagy éppen paraméterként átadva a programnak. A szerver válasza – jó esetben a HTML oldal – alapértelmezésben a képernyőre kerül kiírásra, de természetesen átirányítható file-ba is. Az amigás verzió mindössze 22 kByte terjedelmű, viszont használatához szükség van az ixemul és ixnet library-k legfrisebb verzióira.

Letöltés az AmiNET-ről

Amiga developer hardfile

Megkönnyítendő az amigás fejlesztést, az ekkoriban már használható sebességű emulátor számára építettem egy komplett hardfile-t, amiben minden benne volt az m68k Assembly és C nyelvű fordítókhoz.

Természetesen a szükséges fejlesztői dokumentációkkal együtt…
amiga_developer_hardfile

Letöltés (Download) / ReadMe

Érdekességképpen, az egyik népszerű tutorial is erre hivatkozik: http://www.liquido2.com/tutorial/

------------------------------------------------------------------

   Amiga Developer Hardfile by LouiSe (louise@louise.amiga.hu)

                    $VER: 1.11 (2002/dec/4)

    Everything what you need to develope with AmigaOS and GCC
                         environment!

64 megabytes of disk space enough for everything :) just on AMIGA!

------------------------------------------------------------------


R E Q U I R E M E N T S :

- real or emulated 68k AMIGA (68020+)
- emulator with JIT and fast processor recommended
- Kickstart v3.x
- 16 megabytes of FAST RAM (32 recommended)
- some graphics hw (P96, CGFX with 1024x768 recommended)
- 64 megabytes of harddisk space on Amiga partition


F E A T U R E S :


AmigaOS v3.1 + Utilities:

- KingCON
- NewIcons v4
- AHI + AHI developer includes
- HippoPlayer
- New Translator library
- ToolManager v3
- DirectoryOpus v4.17pre13
- CygnusED Pro v4.2
- Scout - a powerful system info program
- SnoopDOS v3.0
- PowerPacker with PackIt command line tool
- AmiTCP v3.2b with SDK
- AWeb 3.4APL (68040 version)
- FTPMount (mount FTP: for read/write ftp sites like filesystem)
- Enforcer
- Designer (a cool GUI designer)
- ArtPro
- Speech Tools
- AsmOne v1.47
- AsmPro v1.16i
- CrossDOS v7 filesystem and tools
- FileMount - image file mounter
- Next - a cool multi document viewer
- ahi audio driver for WinUAE
- ScreenShell - full-screen shell for GCC develope
- Visage - a great picture viewer!
- dev-handler - a UNIX alike device handler (/dev/df0)
- UnixDirs3 - UNIX alike directory changing (/dev=dev:)
- Play16 - multiformat sound file player
- SWFPlayer - Shockwave flash player for 68k
- InetUtils (tcpconnect, tcplisten, tcpbug)
- indent v2.2.6 C source code formatter
- Imploder executable packer
- StoneCruncer executable packer
- SDL (Simple DirectMedia Layer) user/developer
- ReOrg - disk optimizer tool
- gccopts - GCC project / makefile generator with GUI
- thttpd + php4 - small web server with php support
- SYS:MakeDistrib script for building a non-hardfile version
- MemTrailer AllocMem(), FreeMem() protector patch
- OpenURL library for simple url handling

GeekGadgets:

- a special developer installation with:
- ixemul.library v48.2
- GCC v2.95.3
- binutils
- make
- ...

Documentation:

- AmigaOS developer reference
- AmiTCP developer reference
- bsdsocket reference
- Picasso96 API reference
- Full GCC docs
- AGA developer guide
- AsmONE, AsmPRO developer guide
- C and C++ reference manual
- LibNIX guide
- SDL developer documents
- AHI developer reference
- glib reference
- RPC guide
- StormMesa guide
- sh-utils guide
- ...


H I S T O R Y :

1.11 (2002/dec/4)
	- OpenURL v3.1 added
	- FTPMountDir assign fixed
	- DirectoryOpus config fixed (Visage, Play16, etc.)
	- amitcp GG:netinclude changed to ggtcp GG:netinclude!
	- WBStartup/Dash tooltype item DONOTWAIT added
	- Locale/Accents/magyar.accent upgraded to v2.11
	- WAV and MOD plugin configured for AWEB
	- Play16 upgraded to v1.9
	- asyncio.library upgraded from v37.2 to v39.1
	- GNU make upgraded from v3.77 to v3.80

1.10 (2002/dec/1)
	- sys:MakeDistrib script for creating tar.gz archive
	- GG:ADE-Startup script for standalone GeekGadgets start
	- thttpd v2.21b with patch 22 upgraded
	- CygnusED config modified (filename shows in status line)
	- DirectoryOpus config fixed (IFF, PNG picure show)
	- MUI HotketString.mcc upgraded to v11.2
	- Utils:MemTrailer v1.3 added
	- Next text viewer upgraded to v3.5
	- SDL upgraded to v1.2.5 (WITHOUT static lib/SDL.lib!!!!)
	- Utils:Crunch/LhA downgraded to v1.94 (2.10 is a buggy!)
	- swfplayer upgraded to v1.2c

1.9 (2002/sept/30)
	- MagicMenu removed
	- /bin/sdl-config fixed!	
	- StormMESA v3.0 (OpenGL) added
	- gccopts v1.3 added
	- asl.library updated to v42.0
	- guigfx.library updated to v19.2 (ArtPro)
	- render.library updated to v30.0 (ArtPro)
	- the missing tower.library for JPeG codec added (ArtPro)
	- Workbench background pictures changed
	- Directory Opus config changes
	- /bin/find fixed!
	- s:user-startup is modified
	- sys:locale/accents/magyar.accent updated to v2.9
	- GoldEd removed!
	- thttpd v2.21b with php v4.2.3 added (web pages in usr:local/www/ )

1.8 (2002/sept/29)
	- SDL_image updated to v1.2.2

1.7 (2002/sept/26)
	- missing links in /gg/m68k-amigaos fixed!
	- encrypt conflicts in include/crypt.h fixed!
	- libm v5.4 added
	- /bin/sdl-config added
	- ggdebug v1.0 added (to help SDL development)
	- ftime() function definition inserted to include/sys/timeb.h

1.6 (2002/aug/20)
	- ToolManager Executive/PSTree button fixed
	- CrossDOS v7 filesystem and tools added
	- ReOrg v3.1 added
	- FileMount image file mounter added
	- AHI audio driver for UAE added
	- AHI developer includes and docs added
	- Next updated to v3.4
	- current Shell stack is reduced to 100.000 from 300.000
	- ScreenShell v1.6 added
	- Visage v39.22 added (with GetModeID tool)
	- PackIt v1.19 added
	- dev-handler added
	- UnixDirs3 added
	- GoldED v6 added
	- Play16 v1.7 added
	- AWeb GIF,JFIF,PNG plugin 68040 updated
	- SWFPlayer v1.1 added
	- SWFPlayer integrated to AWEB
	- Imploder v4.0 executable packer added
	- StoneCracker v4.10.3 (stc) packer added
	- Scout upgraded to 37.237 (v3.1)
	- SDL v1.2.4beta user/developer files added
	- Picasso96 includes and autodoc file added
	- HOME environment variable set
	- /bin/makedepend added
	- unadf UAE/ADF disk image mounter/extractor tool added
	- indent v2.2.6 C source code formatter added.
	- gcc updated to 2.95.3 amiga revision 4
	- glib updated to v1.2.10
	- pth updated to 1.4.1
	- inetutils (tcpconnect, tcplisten, tcpbug) added
	- user tools added
	- bin:telnet updated
	- gawk v3.0.3 added
	- libcrypt and crypt v1.0 added
	- gcrypt library added
	- yacc v1.9.1 added
	- bison v1.27 added
	- readline v4.2 added
	- fileutils updated to v4.0
	- autoconf updated to v2.13
	- sh-utils updated to v2.0
	- bison upgraded to v1.35

1.5 (2002/aug/05)
	- grep, cmp, tr, cat and sed tools added
	- Executive task scheduler added
	- PreConfigured Dashboard
	- HippoPlayer multi format module/sound player
	- ArtPro image processing program
	- SayMore, Talk2Me, SayV43 speech programs
	- ReOrg v3.1 - disk optimizer program
	- AsmOne v1.47 and AsmPro v1.16i assemblers
 
1.4
	- second public release

1.3
	- first public release

CHIP – REBOL/Core – The Language of the Free

Carl Sassenrath-nak – ő volt az egyik fejlesztője az Amiga multitaszk operációs rendszerének, és több hasonló kaliberű projektnek – már 20 éve motoszkált a fejében egy olyan programnyelv ötlete, amely egyszerűsége mellett képes minden olyan feladat megoldására, amelyet addig csak a sok tanulást és tapasztalatot igénylő nyelvekkel lehetett megvalósítani. Az ‘egyszerűség’ nem a nyelv alacsony szintjét jelenti, hanem a felhasználó számára biztosítja az egyszerű programkészítést, és a programozói gondolkodásmód helyett elegendő használatához a ‘hagyományos’ de logikus gondolkodás, és a programnyelv szerkezete ehhez igyekszik alkalmazkodni.

Carl álma csak most, 1998-ban valósult meg, mikor is jó néhány ‘rebellis’ programozóval megalkották a REBOL-t a dinamikus közlő nyelvet (dynamic messaging language) amelyet nagyon könnyű megtanulni és használni, akár mindenféle előzetes programozói ismeret nélkül is.

A ‘dynamic messaging’ ebben az esetben az a célt szolgálja, hogy a programnyelv egyfajta fordítóként működjön közre a felhasználó és a gép párbeszédében, méghozzá olyan módon, hogy ne okozzon gondot a teljesen különböző platformok adattípusainak, kommunikációs rendszereinek használata, ami ma igencsak megnehezíti a felhasználók dolgát. Több ilyen platformfüggetlen nyelv létezik (pld: Java) de a megvalósítás során sokszor elvész az igazi függetlenség… (lásd: Java & Microsoft)

A REBOL az adattípusaival képes az aktuális futtató rendszeren a rendszerhez hozzákapcsolni a használni kívánt file-okat, adatbázisokat. Jó példa erre egy FONT (betűtípus) használata. A betűtípusokat tartalmazó file-ok struktúrája, és tartalma Windows-ban, Linux-ban vagy AMIGA-n teljesen különböznek, létezik TrueType, és bitmap font is… Viszont egy REBOL alkalmazásban, programban az interpreter dolga, hogy áthidalja ezeket a különbségeket, és bármilyen környezetben hasonló output-ot jelenítsen meg.

A REBOL 100%-ban platform és hardware független, és ezt annak köszönheti elsősorban, hogy nem forrás szinten került kiadásra hanem majd minden élő – a futtatásához elég előforrással, illetve hálózati kapcsolattal rendelkező – operációs rendszerre lefordítva, közvetlenül futtatható formában. A forrás szintű publikáció általában magával vonja az egyes platformokon történő módosításokat, illetve portolási nehézségeket, ami sokakat elriaszthat a használatától. Az 1.0.2-es verzió Amiga 68k, FreeBSD, Linux (Red Hat, Debian, Slackware), Macintosh PPC, Solaris 2.6 SPARC, és Windows 95/98/NT rendszereken használható, de a folyamatban van még jó néhány operációs rendszer portja is: BeOS i386, BeOS PPC, HP UX, AIX, IRIX, OS/2, Psion, Macintosh 68k…

A REBOL-ba integrálták a fejlesztők az Internet-en való kommunikációt is, így a TCP/IP stack megléte alapkövetelmény. Ezen a felületen a REBOL programok a világ legegyszerűbb módján tudnak adatokat forgalmazni, legyen az FTP, HTTP, vagy éppen egy e-mail elküldése, levétele.

Egy példa az egyszerűségére: “write %rebolcom.html read http://www.rebol.com”

Ez a sor letölti a megadott URL-ről az alapértelmezett html file-t (index.html) és kimenti a lokális drive-ra ‘rebolcom.html’-ként. Egy FTP site-ról, vagy éppen egy mailbox-ból se sokkal bonyolultabb letölteni adatokat.

A REBOL-nak nincs saját editora, a programok bármilyen szöveg-szerkesztővel elkészíthetők, amely képes normál textfile-t menteni. A ‘felülete’ hasonló a régi BASIC vagy FORTH interpreterekéhez, az indítás után a begépelt parancsokat, értékadásokat megjegyzi, betölthetünk és indíthatunk programokat a REBOL prompt-ból. A több mint 200 előre definiált utasítással szinte bármilyen programozói feladat megoldható, kivéve az operációs rendszer függő dolgok. Ilyenek jelenleg a grafikával, GUI-val összefüggő programok, amelyeket a későbbiekben platform-függetlenül használhatnak a REBOL-ban programozók.

A függvények, vagy ‘szavak’ paramétereit szögletes zárójelek (“[“,”]”) közé kell tenni. Ezeket a szimbólumokat a C nyelvhez hasonlóan objektumok összekapcsolására is használhatjuk, például egy függvény definíciójában. Az egyes szavak és értékek elválasztását a szóköz (space) karakter végzi, nincs szükség más elválasztó karakterek használatára.

Adattípusok (datatypes)

A REBOL felismeri a string-ekben tárolt adatokat a típusuk alapján (datatype), és annak megfelelően használja, és éri el azokat. Az előző példában a ‘http://’ szövegrészből megtudta az interpreter, hogy ez egy URL, és a meglévő TCP/IP kapcsolatot használva érje el azt. A datatype-okban a következő típusok vannak definiálva:

integer (0, 1234, -1234)
decimal (3.1415, +1.23E4)
time (1:22, 21:56:00)
date (30-jan-1998, 1998-10-29)
money ($1234.56, US$12.49)
string (“hello world”)
binary (#{3A1852})
email (info@rebol.com)
file (%memo.txt, %C:/DOS/FDISK.COM)
url (http://www.rebol.com)
issue (#707-464-8000)
tuple (1.2.0, 199.4.80.1)
logic (true, false, on, off)

REBOL szavak (words)

A REBOL programok (script-ek) hasonlóan a többi programozási nyelvhez, tartalmaznak utasításokat, szimbólumokat, értékadásokat, stb. Viszont ezen ‘szavak’ használata sokkal egyszerűbb, mint más nyelvekben. A datatype rendszernek köszönhetően a szimbólumok típusa automatikusan olyan lesz, mint a neki adott érték típusa. Tehát ugyanolyan módon kell definiálni egy string-et (város: “Budapest”), mint egy függvényt (program: [if age > 32 [print város]]). A REBOL szavaiban nem különbözteti meg a kis és nagy betűket, tehát a “város:”-ra hivatkozhatunk “Város:”-ként is. Sőt, az ékezetes betűk használata is támogatott (Város: = VÁROS: = varos:), de az ékezetes, és ékezet nélküli szó ugyanazt jelenti az interpreter számára. Lehetőség van a REBOL nyelvi lokalizálására is, vagyis az utasításoknak egy ALIAS-t definiálva akár magyarul is készíthetünk programokat. (alias ‘print “kiír”)

REBOL sorozatok/tömbök (series)

A sorozatok – vagy más néven tömbök – definíciója ugyanúgy történik, mint az egyes változóké, a különbség csak annyi, hogy több értéket adunk meg. Nem kell előre definiálnunk a tömb méretét és típusait sem… Ezt mind elvégzi az interpreter a az értékadás, illetve a módosítás folyamán.

színek: [“piros” “zöld” “kék” “sárga” “narancs”]

A definíció után a tömb elemeire többféle módon hivatkozhatunk.
Ki irathajuk az összes elemet (print színek), egy fix pozíciójú elemet (print pick színek 3), első/utolsó elemet (print first/last színek 3), következő elemet (print next színek), …

A tömbökben az egyes elemeket a pozíciójuknak megfelelően érhetjük el. Lehet keresni is az elemek között (find) illetve kijelölni az elemeket (select). Természetesen ezeken kívül még jó néhány, tömbökre vonatkozó parancs létezik; (change, insert, remove, clear, …)

REBOL ciklusok

Minden programnyelv rendelkezik ciklusvezérlő utasításokkal, amelyek biztosítják a feltételes, vagy éppen feltétel nélküli többszöri végrehajtását egyes programrészleteknek. A legegyszerűbb a ‘loop’ utasítás, amely az utána írt numerikus értéknek megfelelően hajtja végre többször a programrészt. A ‘repeat’ egy kicsit kibővített ‘loop’, annyiban, hogy az utána írt változó értéke mindig a már lefutott ciklusok számát tartalmazza. A ‘for’ – hasonlóan a BASIC és C for-jához – rendelkezik kezdő- és vég- értékekkel, továbbá nem csak 1-el lehet növelni/csökkenteni a ciklusszámlálót, hanem bármennyivel, és ez a ciklusfajta is elérhetővé teszi a ciklusszámláló értékét.

“for count 0 50 10 [print count]” – kiírja 0-tól 50-ig a számokat tízesével.

Az ‘until’ egy nagyon érdekes megvalósításával találkozhatunk a REBOL-ban, a ciklus addig fog futni, amíg a ciklusba tett programrészlet utolsó sora TRUE értéket nem kap, vagyis a ciklus ellenőrző része a cikluson belül kap helyet.

A ciklusokból (értéktől és állapottól függetlenül) való kilépésre a ‘break’ parancs használható.

A make parancs

A ‘make’ parancs képes feldolgozni az átadott tömb tartalmát, majd a megadott adattípusnak megfelelő formára hozni.

when: make date! [30 9 1998]
print when
30/Sep/1998

Ebben az esetben a 30, a 9, és az 1998 decimális értékekből a ‘make’ létrehozta a ‘date!’ datatype-nak megfelelő dátumot.

http://rebol.com

rebol-a.gif

LSDictionary v3

Alan-nel közösen, Native Human Laboratories név alatt készítettük ez a legnagyobb amigás szótár programot, LSDictionary v3 néven. Ez egy szép meló volt…

Az LSDictionary v3 jelenleg a legnagyobb szótárprogram Amigára.
Több mint 50 szótárt tartalmaz, esetenként 100.000 szócikknél is
nagyobb adatbázissal. A szótárak között található olyan extra
is, mint például az Urdu-Angol, vagy a Szuahéli-Angol.

A legnagyobb adatbázisok természetesen a legnépszerűbb nyelvekhez
tartoznak, ilyenek például az angol, német, spanyol, vagy francia.
(a magyar felhasználók sem panaszkodhatnak, mivel igen nagy méretû
Angol-Magyar, Magyar-Angol adatbázis is található a CD-n. )

Minden szótár szabadon bõvíthetõ, sõt akár egy új is létrehozható
nagyon egyszerûen. Az egyes szótárak állapotát ki/be lehet
kapcsolni, így a program csak a számunkra fontos adatbázisokat
jeleníti meg.
Lehetõség van egy külsõ adatbázis file-ból importálni, ami a
lehetõ leggyorsabb adatbázis bõvítési mód.

Érdekes tulajdonság (sajnos AMIGA-n nem sok prgram használja),
hogy a program, minden beállítást megjegyez, és a következõ
indításkor az ablakok ugyanott lesznek, az elõzõleg keresett
szavak visszanézhetõk, stb.

Egy szó megkeresése nagyon rövid idõt vesz igénybe, ami azt
jelenti, hogy maximum 1 másodperc. Ezt le lehet mérni egy
szöveg-file lefordításakor, ami egy 4x-es CD-ROM használatával
kb 120-150 szó/perc sebességgel történik. Ez ugyebár legalább
2 szó 1 másodperc alatt.
A szövegfile fordítás ugyan elég sok idõt vesz igénybe, de
segítségével még az is el tud olvasni egy idegennyelvû
dokumentációt, aki egy kukkot sem tud azon a nyelven, és nem
kell állandóan beírogatni, és kikeresgetni a szavakat a szótárból.

A program legérdekesebb, és legértékesebb tulajdonsága a STRIP
rendszer. Tudtommal, ezt ilyen nyitott formában még egy program
sem használja az egész világon. A STRIP rendszer segítségével
megkereshetõ egy (ragozott) szó szótöve, és így sokkal nagyobb
az esély, hogy a program megtalálja az adatbázisában.
Például: ‘elmegyek’ + STRIP ‘-el+ek’ = ‘megy’

A program használatához nincs szükség winchester-re, akár egy
AMIGA 500-ason is elindul, persze csak ha a gép rendelkezik CD-ROM
drive-val. Ebben az esetben szükség van egy indító lemezre, de
errõl a témáról bõvebben @{“itt” LINK MInstFL } lehet olvasni.

A minimális konfiguráció: Kickstart v3.0 (v39.106), 1MByte memória (512kByte üres), CD-ROM, floppy-drive

A program használatához emellett szükség van a Nico François,
illetve Magnus Holmgren által készített reqtools.library V38-as
változatára is.

Adatbázis programozás, gyûjtés, ötletek: LouiSe
GUI programozás, ötletek: Alan

Köszönetek:

Lya-nak, a sok ordítozós, csörgõs morgós éjszakai hardcodeing,
és más ‘apróságok’ eltûréséért.

Frankie-nek, a német guide-ért.

A PoWer Team tagjainak, elsõsorban ZoZo-nak, aki a cool icon-
okat, és anim-okat készítette.

Pogi-nak, az Angol-Magyar, és Német-Magyar adatbázis egy
részéért.

Nico François-nak és Magnus Holmgren-nek, a reqtools.library
szerzőinek.

Minden olyan művésznek, akinek a module-jait, vagy képeit
felraktuk a CD-re.

Lapzárta utáni történet…

Nem sokon múlott, hogy az egész LSDictionary project elkészülte
után néhány órával megsemmisüljön!

Egy hideg januári szombat délután, mikor is a teljesen kész
programmal elindultunk a megvalósulás felé, vagyis hogy felírjuk
CD-re, a bejáratnál sajnálatos csuszamlás történt…
Alan elesett a jeges úton, maga alá gyûrve táskáját, és benne
azt a több mint 3 gigabyte-ot rejtõ winchester-t, amin az
LSDictionary3, a GroovyPlayer, és még jónéhány igen fontos
program forrása lapult.

Én (LouiSe) még a délután folyamán azon gondolkoztam, hogy
letörlök minden forrást, és adatbázist a saját HD-mról, mert
egy nagyobb programot szerettem volna installálni…
Ha megteszem, akkor most ezt a történetet nem ebben a Guide-ban
olvasnád, mert egyszerûen MEGSEMMISÜLT volna az egész project!
Ebbõl kitalálhattad, hogy Alan winchester-e teljesen tönkrement,
és vele együtt legalább 5 év aktív fejlesztõi munkája…

LouiSe 1996. január 19. szombat

LSDictionary v3 is the largest language dictionary program to date for the AMIGA computer, comprising more than 50 dictionaries, some of which have a database with over 100,000 entries. The total number of words in all the databases is over 1,500,000.

The largest databases are obviously those of the most popular languages, such as English, German, Spanish or French, but some very special dictionaries like Urdu-English or Suaheli-English have also been included.

Every dictionary is freely expandable, and you can create new ones in a very simple and user-friendly manner. Individual dictionaries can be switched on and off, thus making the program able to filter out databases not currently used.

It is possible to import words from an external database file, which is the quickest way to expand the dictionary.

Searching for a word takes very little time, always less than a second.

This can be tested with the text file “translation” function, which runs at a speed of 120 to 150 words per minute using a 4x CD-ROM drive – well, this translates to approx. 2 words a second.

Although text file “translation” consumes a significant amount of time, it helps people read documentations in languages they do not speak at all, relieving them from the burden of writing down meanings of words having looked them up in various dictionaries.

The most interesting and valuable feature of the program is its word stripping system. This system is able to search for the root of a specific word, stripping down endings, suffixes and prefixes, thus providing an immeasurably better chance for the program to locate the word in the database. (Example: ‘procurement’ + STRIP ‘+ment’ = ‘procure’)

To use the program you will also need to have V38+ of reqtools.library (created by Nico François and Magnus Holmgren) installed in your system.

Additional features:

– 100% system friendly user interface, looking very good with an 8 color
MagicWB palette

– Speech support including various accents (needs version
42.x of the translator.library created by Francesco Devitt)

– All functions are also available from CLI/Shell

– Full locale support – every message and text displayed is localised