Gambas3 voorbeelden, WaveGenerator 3.6.3

Op openSUSE 13.1 kan het WaveGenerator voorbeeld een foutmelding geven:

Unable to create media control

en dit op de lijn met “autoaudisink”:

$hOutput = New MediaControl($hPlayer, "autoaudiosink")

Dat heeft te maken met het openen van een audio-uitvoer. Er zijn nogal wat verschillende audiosystemen, in verschillende lagen, en meestal lukt het met die autoaudiosink; hier dus niet.

Ik heb* “autoaudiosink” vervangen door “alsasink”, en daarna loopt het voorbeeld normaal.

$hOutput = New MediaControl($hPlayer, "alsasink")

(*) Op basis van een bericht op de mailinglist waar alsasink wordt vervangen door autoaudiosink.
Ik vond enkele meldingen van het probleem, met verwijzingen naar het audiosysteem, maar nergens een lijst met mogelijke waarden om uit te proberen om het snel te doen werken voor mezelf.

openSUSE Leap 42.1 en Gambas2, Gambas3

Update 03/2016:
Ondertussen draait Gambas2 IDE (2.24) perfect op LEap 42.1!

* Een update van openSUSE 13.1 naar openSUSE Leap:
– Gambas2 programma’s compileren en draaien via runtime ok.
– Gambas IDE’s opstarten: werkt niet (meer), te checken.

Opgelet; Trek geen andere conclusie; dit is dus geen “verse installatie” van Leap; kan een verschil maken!
(inderdaad, na nieuwe installatie of updates was het in orde, zie boven)

OpenSUSE 13.2: unable to find startup file

Net zoals ik met 13.1 wel eens lasthad van een “update=gambas weg” (of minstens gambas onbruikbaar), merk ik nu hetzelfde in OpenSUSE 13.2. Oorspronkelijk geïnstalleerd: Gambas3 uit de education repository.
Laatse versie van 04 feb 2015 heeft er blijkbaar voor gezorgd dat gambas niet meer opstart; in KDE blijft het icoon staan stuiteren (bouncen), en op de commandolijn zie je:

gambas3
gbx3: unable to find startup file

In de package manager zie ik echter dat er een viertal componenten niet aangevinkt staan:

  • gambas3-gb-gtk3 (The GTK3 GUI component
  • gambas3-gb-gb-inotify (Monitor filesystem events)
  • gambas3-gb-markdown (Gambas markdown syntax)
  • gambas3-gb-option (The C getopt() interface component)

Geen idee waarom/welke ik nodig zou hebben, maar ik vink ze allemaal aan en installeer ze.

Ondertussen merk ik nog met

/usr/bin/gambas3.gambas
gbr3: unable to load component: gb.markdown

En jawel! Gambas3 loopt weer!

Gambas munix9 repository: gepromoveerd?

Sinds een tijd valt het me op dat er geen Gambas updates meer binnenkomen, terwijl dat vroeger zeer frequent gebeurde. Mijn huidige Gambas3 is versie 3.6.2-10.1. Ik had ook even het probleem dat de iconen op de desktop, en de link in het menu naar het programma Gambas3 verdwenen waren.


Ik krijg ook een foutmelding “Cannot access installation media” op de repository “home:munix9”, die als URL heeft:
http://download.opensuse.org/repositories/home:/munix9:/gambas/openSUSE_13.1/

File ‘/repodata/repomd.xml’ not found on medium ‘http://download.opensuse.org/repositories/home:/munix9:/gambas/openSUSE_13.1/’


Ik zie op de server http://download.opensuse.org dat dit “path” niet meer bestaat (of nog wel bestaat maar leeg is). Als ik wat op en neer wandel door de directories zie ik dat er wel een andere weg is die naar Gambas3 leidt:

opensuseRepoMunix9

openSUSE Repo Munix9

Volg:
http://download.opensuse.org/repositories/home:/munix9/openSUSE_13.1/
om uit te komen op:

gambas3-3.7.0-4.1.x86_64.rpm 26-Mar-2015 10:00 23K

Wat inderdaad een recentere versie is.

Als ik deze repository instel, zie ik in Yast wel enkele componenten waarvoor een 3.6.2-1.2 aanwezig is, maar geen 3.7.0 wordt aangeboden!

gambas3-gb-geom
gambas3-gb-gui
gambas3-gb-maps
gambas3-gb-media-form
gambas3-script

En wat er in 3.7 beschikbaar is, zonder dat ik daarvan een 2.6 versie heb:

gambas3-gb-report2
gambas3-gb-scanner
gambas3-gb-sdl2
gambas3-gb-util
gambas3-scripter

En bovendien is er een hele verzameling 3.7.90.svn.70000-6.1 bijgekomen, maar die heb ik niet aangezet.

Ik kies voor alle gambas3 paketten wel de update naar 3.7 in Yast, en bevestig andere afhankelijkheden (en het verwijderen van “vervallen” componenten uit 3.6).

Gambas 3 start daarna mooi op als Gambas 3.7

Enkele dagen later is er een upgrade; ik stel ook vast dat deze component niet meer voorkomt in Yast2 lijst van gambas3:

gambas3-gb-media-form


ps: eerst kreeg ik een foutmelding, maar de volgende keer werd de update toch uitgevoerd;
30/03: Foutmelding bij update: problem connecting software origins.

File ‘./x86_64/gambas3-runtime-3.7.1-1.x86_64.rpm’ not found on medium ‘http://download.opensuse.org/repositories/home:/munix9/openSUSE_13.1/’

Update wordt daardoor overgeslagen.

Daarna toch uitgevoerd; 3.7.1

Gambas script als shell script

Ben je zodanig aan Gambas verslingerd dat je een shell script liefst in Gambas schrijft?

Eenvoudig script

Het eenvoudigste voorbeeld is altijd de “Hello World”; maak een tekstbestand helloGambas.sh in ~/bin met als inhoud:

#!/usr/bin/gbs2
Public Sub Main()
   Print "Hello Gambas World v. " & System.Version
End

De eerste lijn geeft aan waarmee dit script moet uitgevoerd worden. Daarvoor kijk je waar gambas staat, bv met “which gbs2”; het antwoord op OpenSuse: /usr/bin/gbs2, elders bv /usr/local/bin/gbs2, enz.

Als je met Gambas versie 3 werkt is het :

#!/usr/bin/gbs3
Public Sub Main()
   Print "Hello Gambas World v. " & System.Version
End

Pas ook hier de eerste lijn aan aan je eigen systeem.

Maak het script uitvoerbaar
chmod +x helloGambas.sh
En start het van de commandolijn met de naam: ./helloGambas.sh

De uitvoer moet natuurlijk

Hello Gambas World v. 2

of

Hello Gambas World v. 3

zijn.

Nu heb je een script dat je kan starten vanop de commandolijn, net zoals je andere shell scripts.

Programma in plaats van script

Als je een veel groter/uitgebreider programma wil laten draaien, kan dat door een nieuw project te openen, kies bij Project Type voor “Command Line Application”.

Dan krijg je geen FMain, dus geen venster dat geopend wordt bij het starten van het programma.
Je krijgt wel een MMain als startende module, en je kan klassen bijmaken enz.

Andere opties mag je wel aankruisen, zoals “settings file managament” en “database access”.

Het uiteindelijke programma compileer je tot mijnProgramma.gambas, en je maakt het uitvoerbaar als het dat nog niet zou zijn.

Je kan dat programma dan aanroepen vanin een shell script, bv:
/home/username/bin/runTest.sh
met als inhoud:
/home/username/uitvoerbaar/mijnProgramma.gambas

In het script kan je ervoor of erna een touch doen naar een bestand om te checken of het script gelopen heeft:


touch /home/username/startedScript.txt
/home/username/uitvoerbaar/mijnProgramma.gambas

Als je vanuit dit shell script je gambas programma kan starten, kan je runTest.sh opnemen in de cron jobs: uitvoeren vanuit de cron jobs,.

Verdere interessante mogelijkheden zijn: een script laten uitvoeren als CGI script in een webserver, …

Gambas3 start niet op in OpenSUSE 13.1 (ok)

Waarschijnlijk weer na een update begin februari, ik heb helaas gemist waar/wanneer juist.

Huidige toestand:

OpenSUSE 13.1 met KDE, uptodate.
Gambas3 IDE: 3.6.2-1.2 uit de OpenSUSE build service, Education.

Veel (de meeste) andere bestanden zijn versie 3.6.2-10.1 en komen uit de “munich” repository.

Blijkbaar is de Gambas installatie slechts gedeeltelijk geupdate, en/of heeft de edu de munich overschreven. Heeft het iets te maken met die 1 en 10 na de hoofdversienummers?

Ik laat manueel updaten (Yast, install/remove software), daarvoor verzet ik alles wat op de Education repo staat naar de munich repo, en dat waren:

gambas3-devel
gambas3-gb-args
gambas3-gb-db
gambas3-gb-db-form
gambas3-gb-desktop
gambas3-gb-eval-highlight
gambas3-gb-form
gambas3-gb-form-dialog
gambas3-gb-form-mdi
gambas3-gb-image
gambas3-gb-image-effect
gambas3-gb-qt4
gambas3-gb-qt4-ext
gambas3-gb-qt4-webkit
gambas3-gb-settings
gambas3-ide

Daarna worden nog volgende Automatic Changes gedaan:

gambas3-gb-option
systemd-rpm-macros
gambas3-scripter
debhelper
rpm-build

Ok! Gambas 3.6.2 is terug.

Op een andere computer met ongeveer hetzelfde systeem (13.1), is enkel de IDE van versie 3.6.2-10.1, en al de rest is 3.6.2-1.2.
Daar doe ik een downgrade van dat ene pakket naar de Education repository (dus naar 3.6.2-1.2), maar dat geeft geen startende gambas3.
Ik doe dus een onconditionele upgrade van de hele lijst (na gambas3 selectie) in yast. Helaas lijkt yast van 3.6.2-1.2 naar 3.6.2-10.1 NIET als een UPGRADE te beschouwen, wat een bug lijkt in de interpretatie van de versienummers door Yast of de updater. En een keuze voor “heel de lijst – downgrade” zit niet in het rechtsklik menu. Ik zet even de Educational repository af, en doe dan een onconditionele upgrade.

nb: Misschien moet ik die Munich repository een wat hogere prioriteit geven? Dat doe je door die repository een lager nummer te geven, bv van 99 naar 98. In dit geval hielp het niet (versienummer-bug?).

nb 2: Achteraf merkte ik dat bepaalde iconen van mappen met gambas inhoud, verdwenen waren. Op mijn desktop had ik het icoon van de map veranderd naar een gambas icoon, dat waarschijnlijk deel uitmaakte van een gambas installatie. Ik ben niet helemaal zeker van het verband.

Update 27/3
: mogelijk is dit de oorzaak (en oplossing)?

Gambas3 Software Farm

Ik heb al een tijdje niet meer gevolgd op de mailinglist van Gambas, en daarom verwonder ik me bij een nieuwe installatie van Gambas3 (op OpenSUSE 13.1). De voorbeelden zitten niet meer bij de installatie. Maar je krijgt in de IDE wel een aanbod om de voorbeelden af te halen van de software farm. Een grappige naam voor een beproefd concept, en een goed idee om de voorbeeldbestanden iets flexibeler te benaderen.

Gambas3 in Ubuntu 14.04: voorbeelden werken niet

Na installatie van Gambas 3 in Ubuntu 14.04 kan je voor beginners ontmoedigende problemen krijgen.

Voorbeelden onbruikbaar?
Een voorbeeld openen leidt tot wat (fout-) meldingen:

  1. project is al (nog) open, met de vraag of je het toch wil openen: “The project seems already opened. Opening the same project twice can lead to data loss”
  2. Je krijgt een melding dat het project read-only is: “This project is read-only”
  3. Bovendien kan je geen “run” doen van het programma; “The program has returned the value: 1”.

De code van de voorbeeld-projecten zitten bij de programmeeromgeving, en die wordt geïnstalleerd in het systeem. Daar kan je als gebruiker geen bestanden wijzigen – wat ertoe leidt dat het project “read-only” wordt geopend. Je kan het dan ook niet bewaren op dat moment.

Oplossing:
Kopieer het project met “File, Save Project” in een map in je eigen directory. Open en wijzig de projecten daar; je krijgt geen foutmelding meer. Hier kan je ermee doen wat je wil.
Om alle voorbeeldprojecten ineens naar je home directory te kopieren, kan je ze vinden in de directory
/usr/share/gambas3/examples
Als ze op jouw systeem elders staan, kan je een voorbeeldproject dat read-only is openen en kijken bij Project, About; daar staat onder de naam van het project ook de map vermeld.

Voordeel hiervan is trouwens dat de bijgeleverde voorbeeldcode gegarandeerd de oorspronkelijke voorbeeldcode blijft, en je die niet kan verknoeien; bovendien kunnen ze mee ge-update worden.

Components missing
Een andere foutmelding die wel eens voorkomt is bv “Some components are missing: ” en dan de namen van de ontbrekende componenten. Ik vermoed dat het soms bv KDE projecten waren, die bepaalde KDE bibliotheken missen, wat normaal is als je geen KDE geïnstalleerd hebt.
Oplossing:
Kijk naar de naam; je kan in de packet manager checken of er componenten nog bij te installeren zijn.
Probeer eens een Gambas op een andere desktop/distributie combinatie; bv OpenSUSE met KDE.

Gambas3 op Ubuntu 14.04: cursor in editor staat fout

Cursor in editor fout?

De editor vertoont een eigenaardigheid: bij het veranderen van tekst staat de cursor telkens verkeerd: vóór de letter in plaats van na de letter die gewijzigd gaat worden.
In eerste instantie staat de cursor juist. Je positioneert en begint iets te wijzigen. De lijn verandert van vormgeving; de kleurcodes verdwijnen en alle letters worden gewoon zwart. Maar daarbij lijkt de lijn ook van lengte te veranderen; wordt een ander lettertype gebruikt, of komt het door het verdwijnen van de “vet” markering op bepaald letters? In ieder geval komt de plaats van de cursor niet meer overeen met de plaats van de letters in de wijzigende tekstlijn, wat ertoe leidt dat je verkeerde letters vervangt, typt enz.

Oplossing:
Tools, Preferences, Style: Onder Fonts, Editor zet bv “Courier 10 Pitch” in plaats van “Monospace”. Dit leek aanvankelijk een verbetering maar bij nader inzien toch niet de oplossing.
Uit documentatie blijkt dat het over een probleem van deze versie (3.1 of 3.2) op Ubuntu gaat.
(Vgl: in openSuse gebruik ik momenteel Gambas 3.5.4)
De werkelijke oplossing is een andere versie van Gambas3 te installeren, dus NIET die uit de standaar Ubuntu bronnen, maar wel uit een andere bron, met versienummer vanaf 3.3. De opgegeven bron werkte voor mij niet:
repository ppa:nemh/gambas3
Maar wel deze, met de meest up-to-date versie, vers uit ontwikkeling: 3.6.99 (wat misschien ook zijn problemen kan geven soms):
sudo add-apt-repository ppa:gambas-team/gambas-daily
Dan

en installeren, bv uit Ubuntu Software Center, waar je kan zoeken op Gambas3, en meer info vragen om het versienummer te checken.

gambas3-ide 3.6.99+svn6803+build22~ubuntu14.04.1

Het icoon verschijnt in de knoppenbalk links, waar je Gambas3 kan starten.

Ik heb wel twee keer moeten proberen:

Gambas3

en

Complete visual development environment for Gambas

En ik krijg nu de melding in Gambas: “Development version – use at your own risk“.

Maar de editor werkt tenminste keurig nu 🙂