Posts filed under 'softat'

Processing 2 -> Processing 3

Pitkän jähnäilyn jälkeen päätin lopulta yrittää PETSCII-editorini päivittämistä Processing 2:sta Processing 3:lla toimivaksi. Yhtäältä P2 alkaa olla jo ammoinen versio, eikä sillä tehtyjen softien toimivuus nykykoneilla ole enää taattua, ja toisaalta sorsaversiosta kiinnostuneille on melkoista riesaa roikottaa koneella vanhentunutta ohjelmaa vain tämän takia. En mitenkään erityisemmin itse rakasta P3:a, sillä se ei ole joka suhteessa parannus aiempiin, mutta minkäs teet.

Processing 3 – haaskataanpa tilaa oikein kunnolla näihin tabien väleihin 🙁

Parin illan pakerruksen jälkeen uskoisin saaneeni jo suunnilleen kaiken toimimaan tyydyttävästi. Osa korjauksista oli triviaaleja, kuten ikkunan koon asetuksen vaihtaminen settings()-funktioon ja args:n kohdalla lisätarkistus, ettei taulukko ole null – P2:ssa taulukko on tyhjä, jos komentorivillä ei ole annettu parametreja. Ikkunan otsikko vaihdetaan nykyään surface.setTitle()-funktiolla aiemman framen sijasta.

Mutkikkaat asiat ovat kuitenkin mutkikkaita, ja etenkin esikatseluikkunan kanssa taistellessa oli usko loppua. Vanha (sekin huono) tapa avata toinen ikkuna ei enää toiminut alkuunkaan, mutta toisaalta esimerkeistä löytyy nykyään ihan semivirallinenkin keino kahden ikkunan käyttöön. Ongelmat alkavat siinä vaiheessa, kun toinen ikkuna pitäisi pystyä sulkemaan ilman, että koko ohjelman suoritus loppuu. Päädyin siihen, että toista ikkunaa ei kannata edes yrittää sulkea, vaan se on parempi piilottaa, kun sen halutaan olevan “kiinni”. Lopulta esikatseluikkunan koodista tuli selkeämpi ja siistimpi kuin vanhasta, joten ainakin tämä muutos oli parannus.

Toinen suuri kompastuskivi oli vasemman ja oikean shift-näppäimen toisistaan erottelu, joka oli jo ennenkin hankalaa ja vaati keyPressed(KeyEvent ke)-purkkaamista. Nyt vanha konsti ei toiminut enää ollenkaan, mutta onneksi keyEvent-oliosta saa edelleen kaivettua AWT:n eventin, jonka alta löytyy tuttu KeyEvent.KEY_LOCATION_LEFT. Tämäkin tapa on jo menossa kiellettyjen listalle, mutta ainakin toistaiseksi se vielä toimii. Olisi tietysti yksinkertaisinta, jos Processing vain suoraan tukisi shiftien erottelua, mutta se lienee turha toivo.

Oikeasti merkittävä parannus olisi, jos saisin höskän toimimaan 2D-kiihdytettynä, mutta tällä hetkellä piirtokoodi on niin tiukasti sidottu pikselien suoraan sorkkimiseen, että se ei ole kohtuudella mahdollista. Vaihdoin kokeeksi grafiikkaengineksi P2D:n, mutta se oli lähinnä ruma ja läginen (tämä on toki kiinni lähinnä omasta piirtokoodistani), joten olkoon toistaiseksi. Linuxilla ja Windowsilla kiihdyttämätönkin ikkuna on aivan tarpeeksi nopea, mutta Mäkillä meno on hieman hyhmäistä nykyisillä Javan versioilla, joissa ei ole enää Applen optimointeja mukana.

Add comment November 17th, 2020

Processing 3 and right/left shift

In Processing 2 it was relatively easy to tell the difference between the right and left shift by overriding keyPressed(java.awt.event.KeyEvent ke), but in Processing 3 event handling has changed and the function doesn’t even get called any more. I really really wanted to use the two keys differently and came up with this blurb for the keyPressed() handler:

if(keyCode==SHIFT)
{
  java.awt.event.KeyEvent ke;
  ke=(java.awt.event.KeyEvent)keyEvent.getNative();

  if(ke.getKeyLocation()==KeyEvent.KEY_LOCATION_LEFT)
  {
    // It's the left shift
  }
}

Note that this will only work with the default renderer, as the others don’t use AWT. The “solution” is also deprecated, so it might stop working any time and then we need another hack to work around the issue. Things would be so much easier if Processing simply provided a different keyCode for the two keys, but I wouldn’t hold my breath waiting for that.

Add comment November 16th, 2020

Revisiting the compositor script

After some recent updates it seems my old compositor toggle script may not work on all setups – for example two of mine. Marco doesn’t react to the compositor setting change or even the graphical Window Settings preference. Need to do things a bit more complicated way then:

#!/bin/sh

case $1 in
on)
	gsettings set org.mate.Marco.general compositing-manager true
	gsettings set com.linuxmint.desktop mate-window-manager marco-composite
	marco --replace &
	nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceCompositionPipeline=On }"
	;;
off)
	gsettings set org.mate.Marco.general compositing-manager false
	gsettings set com.linuxmint.desktop mate-window-manager marco
	marco --replace &
	nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceCompositionPipeline=Off }"
	;;
esac

Again, call it something like compositor.sh, copy it to /usr/local/bin and chmod a+x compositor.sh as root. The parameters on and off will toggle the compositing.

As a sidenote, the compositor started getting stuck in several situations on my main machine: turning the screen off and on would make the GUI get stuck, and likewise for display sleep. Updating to a newer driver version (455.23.04) seems to have remedied the situation.

Add comment October 29th, 2020

Kromikirja palaa juurilleen

Hankin Acer C710 -Chromebookin muistaakseni 2013 ja se palveli kohtuullisen hyvin kevyessä käytössä jokusen vuoden. Isona plussana mallissa olivat kohtuullisen täysi näppis (myöhempiä karsittiin), vaihdettavat muistit ja normaali 2,5″ kiintolevy, joka oli helppo vaihtaa SSD:hen. Kehittäjämoodi ja Crouton kohensivat kummasti elämänlaatua, kun Chrome OS:n rinnalle sai pyörimään Linux-softat, jotka täydensivät rajallista ohjelmavalkoimaa. Jossain vaiheessa totesin, ettei Chrome OS oikeastaan tehnyt mitään itselleni hyödyllistä, joten asentelin koneeseen SeaBIOSin ja normaalin Mintin, joka toimikin kelpo lailla lukuun ottamatta valmiustilaa.

Aika ajoi kuitenkin lopulta Chromebookin ohi, kun tehot alkoivat käydä riittämättömiksi ja akkukin hiljalleen lerpahti. Kone oli käytännössä joutilaana kaapissa muutaman vuoden, kunnes päätin entisöidä sen alkuperäiseen asuunsa: tarrat vek (tunnin kihnutus) ja Mintin tilalle takaisin Chrome OS. Jälkimmäinen tehtävä vaikutti lähes toivottomalta, koska olin joko tuhonnut tai hukannut järjestelmän palautusimagen, eikä laitetta periaatteessa palauteta ilman sitä luonnontilaan. Ohjeiden avulla sain kuitenkin firmiksen takaisin, sillä asennusskripti osasi ladata ja modifioida alkuperäisen tiedoston – ainakin C710:lle.

Ihan helposti palautus ei sittenkään tapahtunut, sillä käyttis palautetaan vielä erikseen ja siihen tarvittava työkalu ei toiminut Linuxilla. Googlaus auttoi jälleen ja sain tehtyä palautustikun onnistuneesti … paitsi että kaksi ensinnä kokeilemaani tikkua eivät toimineet syystä tai toisesta. Lopulta sentään Kingstonin vanha rähjäinen DataTraveler osoittautui toimivaksi.

Näin vanhat Chromebookit eivät ole enää päivitysten piirissä, vaikka rauta sinänsä ei olekaan juuri heikompaa kuin huonoimmissa uusissa ‘bookeissa. Chrome OS jää niin ollen versioon 65.x, joka ei valitettavasti riitä uusiin kiinnostaviin ominaisuuksiin, kuten Android- ja Linux-softien ajamiseen. Ikä painaa konetta muutenkin pahasti, joten se luultavasti pääsee jo viettämään eläkepäiviään kaapin nurkkaan ilman työvelvoitteita.

Luonnontilainen Acer C710 “Parrot”.

Add comment October 16th, 2020

Another VLC blanking issue

I’ve addressed VLC+screen blanking issues (screen blanks even if VLC should keep the screensaver off) before, but this time the old trick didn’t work. The “disable screensaver” setting was on as it is by default, but still the video started turning black after a while. After some googling it seems someone somewhere has broken VLC default settings and commented out the following line in the settings file, .config/vlc/vlcrc:

disable-screensaver=1

Removing the hash (#) sign seems to remedy the situation and the screen stays on as it should. Curiously, the setting is commented out on another computer too, but the blanking doesn’t kick in there. Curiously, saving the prefs from the GUI comments the line out again. I’ll get back to this if I find out anything.


VLC pimentää ruudun, vaikka “disable screensaver” on päällä asetuksista. Mitäs tämä on? Kyse voi olla tästä, mutta jos ei, niin kannattaa tsekata asetustiedosto .config/vlc/vlcrc ja poistaa risuaita seuraavalta riviltä:

disable-screensaver=1

Tämä ei taida olla valitettavasti kovin pysyvä ratkaisu, sillä asetusten tallentaminen käyttöliittymästä laittaa kommenttimerkin takaisin. Kerron, jos jotain uutta ilmenee.

Mockup of the issue / Havainnollistava kuva ongelmasta

Add comment September 26th, 2020

Mint 20, minulleko? Ei kiitos.

Jälleen kerran tuli työn alle uusi läppäriprojekti, kun kierrosta poistuneesta Dell Latitude E7270:stä piti tekemän itselleni liikkuvaa työasemaa. Linux Minttiä koneeseen toki, mutta päätin saman tien päivittää tuoreimpaan eli versioon 20, josta ei ollut vielä muuten kokemusta. Muutaman päivän kokemusten jälkeen tunnustin tosiasiat, vedin koneen sileäksi ja asensin tilalle hyväksi todetun 19.3:n. Jaa että miksikö?

  • Javan JOGL ja sitä myötä Processingin rautakiihdytetty 2D sekä 3D eivät toimi.
  • Varmaankin edelliseen liittyen OpenGL-ohjelmien kanssa on vähän kaikenlaista muutakin epämääräistä pykimistä, kuten mustia ruutuja.
  • Viimeisimmän päivityksen myötä hajosi myös Steam, mikä oli aika lailla viimeinen pisara. Veikkaan näiden kyseisten kompurointien johtuvan epäonnisesta Mesan, X11:n tai kernelin versiosta, mutta motivaatio syvällisempään selvittelyyn puuttuu.
  • Chromium on heivattu paketinhallinnasta ja tilalle tuputetaan Firefoxia. Tämä ei ole sen tyylistä valinnanvapautta, jota Linux-käytöltäni haen.
  • Kaikenlaisia legacy-kirjastoja on niin ikään hävitetty pakettitarjonnasta, mikä on tavallaan ymmärrettävää, mutta samalla rikkoo väistämättä joidenkin vanhojen ohjelmien yhteensopivuuden.

Tahdon uskoa, että nämä ovat tuoreen version lastentauteja, jotka ajan oloon ainakin osittain ratkotaan (paitsi kenties ideologiselta haiskahtava Chromium-kupru, jonka sentään sai ohitettua PPA:n avulla). Juuri tällä hetkellä tilanne on kuitenkin se, että tarvitsen läppärin oikeaan käyttöön enkä lelutukseen, joten yritetäänpä uudestaan joskus toiste – eikä tuotantokoneella.

Add comment September 23rd, 2020

Suspend/Sleep/Chromium/Chrome/Linux/Corruption

Just in case someone else is trying to google the same issue and does not find a solution. Chromium 85.0.4183.83 seems to be a rather bad update, as after returning from suspend the graphics are completely corrupted and the only “solution” is to restart the browser. The problem is not limited to Chromium only, but manifests itself with Chrome as well. Dunno if this is only Nvidia-related, but at least the driver version didn’t matter.

Here’s a solution that actually seems to work: start Chromium with the parameter –use-gl=desktop


Chromium 85.0.4183.83 -päivitys päätti ryhtyä sotkemaan grafiikkansa valmiustilasta palatessa. Sama koskee Chromea – en tiedä, onko ongelma vain Nvidiaan liittyvä, mutta ainakaan ajurin versiolla ei tunnu olevan merkitystä. Onneksi ratkaisukin löytyi: Chromiumin kun käynnistää parametrin –use-gl=desktop kera, niin tuntuu taas toimivan.

Melko vekkulin näköinen Facebook, muttei paljon naurattanut tänä aamuna.

edit: Found a better solution than the Vulkan trick!

edit2: Tried –use-cmd-decoder=validating instead. Didn’t work 🙁

Add comment September 13th, 2020

Creaks – Amanita taas asialla

Amanitan joka ainoa peli pitää ostaa ja pelata läpi. Piste. Viime aikoina putiikin tahti tuntuu hieman kiihtyneen, siinä missä takavuosina pelien välillä meni pari kolmekin vuotta. Edellinen pläjäys, Pilgrims, oli hieman erilainen kuin aiemmat point’n’clickit sekä lyhyt, mutta varsin onnistunut yhtä kaikki. Niin ikävä kuin tämä on sanoakin, klassinen Samorost-sarja on toivottavasti jätetty hyllylle, kun se tuntui hieman kangistuneen jo kaavoihinsa. Tällä kertaa pelutukseen päätyi tuore Creaks.

Tyypillinen näkymä

Pelistä ei ole ainakaan vielä Linux-versiota, mutta Steam+Proton oli jälleen ystävä, ja kaikki toimi suorilta ilman mitään merkittäviä kupruja. Harvakseltaan putosi jokunen frame välistä, mutta paha sanoa, oliko kyse pelistä itsestään, koneeni asetuksista vai Protonista. Rahaa Creaksista pyydetään 20 euroa, mikä ei ole tällaisesta seikkailusta ihan vähän – epäilemättä peli nähdään jossain bundlessa ja tarjouksessa ennemmin tai myöhemmin.

Toinen tyypillinen näkymä

Aiemmista Amanitoista Creaks poikkeaa etenkin kontrolliensa osalta: point’n’click on ollut firman leipälaji, mutta tässäpä ohjaus tapahtuukin näppäimistön tai peliohjaimen voimin. Syynä tähän valintaan ovat todennäköisimmin lukuisat konsoliporttaukset. Creaks on muutenkin toiminnallisempi kuin aiemmat teokset, ja erikoisuutena pelissä on jopa mahdollista kuolla(!) toisin kuin ennen. Grafiikat ja musiikit ovat tuttua taattua laatua, joskin hieman synkempiä. Monin paikoin tuli tunne, että pelaisi piirroselokuvaa.

Musikaalinen minipeli

Hyvin suunniteltuja puzzleja riittää moneksi tunniksi (itse sain sekoamaan peräti kahdeksan tuntia kaikkine sivupolkuineen ja animaatioineen), ja vaikeustaso on yleisesti ottaen hyvin kohdillaan. Välillä menee hieman mekanistisen tahkoamisen puolelle, mutta melkein joka ruudussa on joku nokkela koukku. Lisää ajankulua tarjoavat lukuisat pikku minipelit, joilla ei ilmeisesti ole mitään merkitystä itse juonen kannalta. Seinissä on myös animoituja maalauksia niin ikään viihteeksi. Minipelien läpipeluusta ja taulujen löytämisestä saa Steamiinsa ainakin saavutuksia.

Creaksin udelleenpeluuarvo lienee kohtullisen pieni, kuten tällaisilla peleillä tuppaa olemaan. Eiköhän tuonkin äärelle tule joskus palattua vaikkapa puuttuvia tauluja etsimään, mutta jo kerran ratkaistut pulmat eivät toki ole kovin kiinnostavia. Kyllä tätä taas kelpasi hakata, joten antaa tulla lisää vaan – luottokortti on alati valmiina!

edit: Nvidian ja työpöydän kompositorit vek, niin framerate pehmenee oleellisesti.

Add comment August 16th, 2020

Marco, compositing and Nvidia

It’s quite a mess for MATE desktop users who have Nvidia at the moment. The default software compositor – required for window shadows – doesn’t play nicely together with Nvidia’s idea of the vsync, and thus there’s nasty tearing almost everywhere, maybe apart from fullscreen games. Using Nvidia’s own compositor solves this issue, but having them both on at the same time is detrimental to game framerates and causes unnecessary stutter.

Here’s a little script I made to remedy the issue to a certain extent. Call it compositor.sh or whatever you see fit, and then use it with on/off to turn compositing on or off. Even better when bound to hotkeys that let you quickly switch between a tearfree good-looking desktop mode and a fast game mode:

#!/bin/sh
case $1 in
on)
    gsettings set org.mate.Marco.general compositing-manager true
    nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline=On }"
    ;;
off)
    gsettings set org.mate.Marco.general compositing-manager false
    nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline=Off }"
    ;;
esac

It of course needs to be executable too (chmod a+x compositor.sh) and preferably in the path.

edit: In case this doesn’t work for you, see the newer version of the script.

Add comment April 2nd, 2020

Harmaa peli

En yleensä jaksa paljon postata yksittäisistä peleistä, mutta pari päivää sitten tuli vastaan sellainen pelitaiteen edustaja, että se sanan tai pari hyvinkin ansaitsee. Reilu vuosi sitten julkaistu Gris oli tullut vastaan sivumennen jossain vaiheessa, ja nyt kun teos oli tarjouksessa ja Manukin sitä suositteli, niin löin rahat tiskiin. Mäkkärille ja Windowsille tehtyä peliä olisi 2018 voinut olla vielä vaikea ajaa Linuxissa, mutta näin 2020 Proton on ystävä. Ihan suorilta Gris ei tosin lähtenyt vaan vaati muutaman komennon antamisen puuttuvien palikoiden asentamiseksi. Virittelyn jälkeen en huomannut mitään sekoilua tai kaatuilua koko läpipeluun aikana.

Komeita on maisemat.

Grisin suurin valtti ovat uljaat grafiikat, joiden vääntämiseen kulunutta aikaa on vaikea edes kuvitella. Peli tykkää resosta, ja jo 1440p:n ja 1080p:n välillä huomasi pientä yksityiskohtien katoamista, puhumattakaan sitten, jos alla olisi vaikkapa läppärin vaatimaton 1366×768-tarkkuus. Laitteistovaatimukset ovat hillityt, kun jopa integroitu HD 4600 jaksoi puskea full hd:ta pelattavalla nopeudella, vaikkakaan ei sulavasti. Myös tunnelmalliseen äänimaailmaan on laitettu paljon paukkuja, joten parhaimmillaan kokemus on kunnon kajarien tai kuulokkeiden kanssa.

Äiskä?

Kauniin kuorensa alla Gris on viime kädessä hyppelypeli, jonka vaikeustaso on viritetty kohtuulliseksi: oikeasti hankalia kohtia oli vain muutama, ja kenttäsuunnittelu ohjaa yleensä oikeaan suuntaan paitsi aivan lopussa, jossa meni hieman harhailuksi. En ole lueskellut mitään taustatarinoita tai spekulointia netistä, mutta eiköhän pelin teema ole masennus ja/tai trauma, josta päästään yli vain ajan kanssa – lukuisat patsaat tulkitsin hahmon äidiksi, ja värit/elementit palasivat elämään koettelemusten kautta. Jopa (harvakseen nähdyt) viholliset auttoivat lopulta eteenpäin ja olivat tarpeellisia.

Itselleni tutuimpia vertailukohtia taiteellisten hyppelöiden saralla ovat – puhtaasti peleinä pykälän paremmat – Limbo ja Inside, joiden vaikutusta olin näkevinäni paikoitellen. Vastaavaa taiteellisesti kunnianhimoista AV:ta edustavat lisäksi ainakin Amanitan seikkailut: Machinariumin robottia muistuttavia otuksia näkyi Grisissäkin, ja pimeässä veden alla uinti toi mieleen Botaniculan loppupään. Ovatpa nämä vaikutteet sitten oikeita tai kuviteltuja, niin Gris on viime vuosien parhaita kohdalleni sattuneita pelillisiä kokemuksia, jopa pelejä.

edit: Saattaa olla, että pelipädi olisi tähän käyttöön parempi kuin näppis. Tuskaisan WASD-kontrollin sai onneksi mäpättyä ihan nuolinappeihin.

Add comment March 18th, 2020

Previous Posts


Kommenttien virta

Aiheet