Posts filed under 'softat'

Poliisi pamputtaa taas

Värkkäilin 2016 retrograafikoille Pixel Polizein, joka on tarkoitettu pikemminkin toisaalla piirrettyjen kuvien tarkastamiseen kuin yleiseen formaatista toiseen konvertointiin ja ditherointiin (vaikka sillä formaattikonversioita kohtuudella pystyykin tekemään). Siinä missä tekstigraffaeditorilleni löytyi nopeasti käyttäjäkunta, jäi Poliisi hieman marginaaliin, kenties siksi, että samat asiat sai tehtyä muillakin ohjelmilla.

Alkuinnostuksen voimin jaksoin väsätä tukea aika monelle plattikselle ja moodille, mutta lopulta se polttoaine oli käytetty ja 2017 tein enää pieniä korjauksia. Sen jälkeen tuli yli kolmen vuoden tauko, ja kuvittelin jo koko projektin tulleen tiensä päähän – näinhän on tunnetusti käynyt monille muillekin innolla aloitetuille graffatyökaluille. Läsähdyksestä huolimatta prokkis toimi kuitenkin hyvänä olio-ohjelmointi- ja ohjelmistosuunnitteluharjoituksena: kokonaisrakenne on kohtuullisen selkeä, uusia koneita on helppo lisätä eikä missään ole kohtuuttoman mutkikkaita söheröitä, joihin en uskaltaisi enää itsekään koskea. Samaa ei voi valitettavasti sanoa PETSCII-työkalusta, joka mutatoitui pikaisen yhden illan kokeilun ympärille.

Innostuin päivittämään petskariedikkaa jälleen tänä syksynä sieltä täältä, etenkin kun Processing 2:ssa jumittamisesta alkoi tulla todellisia ongelmia. Lopetin siis vetkuttelun ja kohtuullisen pienin muutoksin sain siirryttyä Processing 3:een. Sitä myötä muistin myös Poliisin ja hyvin pikaisesti modernisoin senkin. Kopypastesin samalla mukaan uudistettua UI-koodia toisesta projektista, mitä myötä käyttöliittymä hieman koheni. Jo pelkästä P3:een siirtymisestä koitui jotain etuja korjattujen tiedostopolkujen ja uudemmilla JRE:n versioilla toimimisen muodossa.

Samaltahan se näyttää.

P3:ssa ei voi enää pompotella piirtäessä grafiikan pehmennystä pois smooth/noSmooth-funktioilla, joten oli pakko valita pikselien erottuvuuden vuoksi pehmentämätön graffa. Asiasta ei onneksi sanottavaa harmia koitunut muuten kuin hieman rösöisempien painonappien muodossa. Eri zuumitasoja kokeillessa huomasin käyttöliittymätekstien menevän joskus kuvan päälle, joten tulipa korjattua sekin pitkäikäinen bugi samalla. Katsotaan nyt, mitä teen seuraavaksi: retrokoneita ja niiden graffamoodeja olisi loputtomasti, mutta energiaa taas ei ole loputtomasti, joten jollei jostain paljastu suurta lojaalia käyttäjäkuntaa, niin taidan tyytyä lähinnä korjailemaan pikku bugeja.

Add comment December 1st, 2020

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

Buffalon tie reitittimestä wlan-sovittimeksi

Nurkkiini oli jäänyt aikansa palvellut Buffalo AirStation WHR-HP-G300N (myös lisänimillä High Power N300 tai Nfiniti!), joka alkoi vaikuttaa serrikamalta 100 Mbitin etherneteineen ja 802.11n-wlaneineen, sillä olin jo muutama vuosi sitten siirtynyt gigabitin ja 802.11ac:n aikaan. Eräänä päivänä pälkähti päähäni kuitenkin ajatus siitä, saisiko Buffalosta korvaajan vähän niin ja näin toimiville USB-WLAN-pulikoille. Siispä googlaamaan.

Päässä hetkellisesti lainasojottimet, koska lainasin varsinaiset sojottimet eteenpäin.

Reitittimille vaihtoehtoisia firmiksiä värkkäävä DD-WRT-projekti on iloinen asia, ja AirStationillekin löytyy tukea. Hieman yllättäen myös itse Buffalo on jaellut DD-WRT:tä “Professional”-nimellä – vakkari on nimeltään “User-Friendly”, minkä osuvuudesta voi kyllä olla montaa mieltä. Ajattelin pelata varman päälle ja asensin Buffalon jakelupaketin, vaikka se jo muutaman vuoden vanha onkin. Samalla nimellä on ilmeisesti myyty kahta vähän erilaista purkkia, mikä saattaisi aiheuttaa hankaluuksia, mutta päivitys meni sisään ihan sutjakasti ja käyttöliittymä muutti muotoaan:

Täältähän löytyy kaikenlaista uutta.

Alkuperäinen ajatukseni oli laittaa Buffalo Client Bridge -moodiin, jossa ethernet-nartsan päässä istuva PC pääsisi ulkoverkon IP:llä maailmalle ja purnukka olisi periaatteessa läpinäkyvä. Yhdistelmä omaa osaamattomuuttani, huonoja ohjeita ja sekalaista toimimattomuutta toppasi yrittelyn kuitenkin ennen pitkää. Seuraavaksi sopivin ja luotettavampi vaihtoehto on tavanomaisempi Client-moodi, joka lähtikin odottamattoman helposti tulille.

Tärkeimmät asetukset ovat paikoissa Wireless–Basic Settings ja Wireless–Wireless Security, joihin laitetaan tiedot siitä wlanista, johon Buffalon pitäisi liittymän. Minimissään paljon muuta ei oikeastaan tarvitakaan, paitsi omaan luotavaan lankaverkkoon liittyvät asetukset paikasta Setup–Basic Setup. Monenlaisia säätöjä toki riittää ja langattoman verkon “advanced settings” -täpän takaa löytyy nopeuteen oleellisesti vaikuttavia juttuja, kuten antennien lähetysteho. Täällä ja etenkin täällä lisätietoja aiheesta. Hyödyllinen välilehti on myös Status–Wireless, jolta näkee yhteyden nopeuden ja laadun.

Jäikö projektista mitään oikeasti käteen? Väittäisin, että kyllä. 24/7 toimimaan tarkoitettu reititin on vakaampi laite kuin kyseenalaisen USB-ohjaimen ja hataran portin perässä roikkuva kyseenalainen USB-pulikka kyseenalaisine ajureineen ja virransäästöineen – etenkin Linuxin tapauksessa. Yhteys ei ole katkennut kertaakaan sen enempää kolmen tunnin pingaamisella kuin kymmenien gigojen kopioinnissakaan. Tietokoneen päässä riittää toimiva ethernet-portti ja ylimääräisenä pikku plussana vapaaksi jää yksi USB enemmän.

Sivumennen tuli opittua yhtä sun toista langattomista verkoista – ainakin se, kuinka ongelmaisia ne ovat piuhalla kytkemiseen verrattuna. Aikanaan nopeaksi mainostettu 802.11n ei ole välttämättä juuri sen kummempi kuin g-verkkokaan, jollei käytössä ole 40 MHz kaistanleveyttä ja useampia kuin yksi antenni (Buffalossa on sentään molemmat). Lähetystehot, maakohtaiset rajoitukset ja preamblet olivat joskus toki tulleet jo vastaan, mutta tämän säädön myötä niihin tuli tutustuttua paremmin, samoin kuin joihinkin uusiin Linuxin verkkotyökaluihin.

Add comment November 8th, 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 🙁

edit3: This hack probably isn’t necessary any more. It was causing some performance issues anyway.

Add comment September 13th, 2020

GeeHorse NYT

Pikaisesti ensimmäisiä kokemuksia GeForce NOW -palvelun toiminnasta Linuxilla. Lyhyesti ja ytimekkäästi: pientä säätöä vaatii, mutta toimii kyllä. Chrome OS -tuen myötä pelipalveluun ilmaantui samalla vähin äänin myös Linux-tuki, vaikkei sitä missään pahemmin mainostetakaan. Selaimena pitää olla tuoreehko Chrome – yhtä lailla toimi Chromium, joka laitetaan teeskentelemään Chrome OS:ää, mutta sen enempää virittelyä ei sitten tarvitakaan. Ohjeet esimerkiksi täällä. Kirjautuminen tarvitsee tunnarin (FB riittää sekin), minkä jälkeen silmien eteen aukenee tällainen näkymä:

Näkymä selaimessa

Ideahan on siis, että voit pelata omia pelejäsi Steamista, Epic Lames Storesta ym. Renderöinti tapahtuu siellä jossain Nvidian tehoveivillä ja netin yli streamataan videota, joten asiakaspäässä ei tarvita järin kummoista rautaa. Tuettuja pelejä onkin jo paljon, mutta omassa Steam-kirjastossani osumia oli silti harmillisen vähän; kokeiluun lähti Nex Machina, joka toimi ihan mukavasti, vaikka tällaiseen peliin verkon tuoma pikku lägi ei olekaan järin tervetullut.

Ilmaisella tunnarilla saa tunnin pelisessioita ja joutuu mahdollisesti jonottamaan, siinä missä 5,49€ kuussa sijoittamalla saa nopeammat aksut, pidemmät sessiot ja RTX-tuen. Tämän perusteella en ole vielä latomassa taaloja tiskiin, mutta katsotaan tilannetta pidemmän päälle. Saisihan tällä ainakin joitakin Windows-pelejä toimimaan, jos pakottava tarve olisi. Ihan tasainen GeForce NOW:n tie ei ole ollut, sillä keväällä osa mukana olleista julkaisijoista, Activision Blizzard ja 2K Games, lähtivät lätkimään palvelusta peleineen.

Add comment August 26th, 2020

Next Posts Previous Posts


Kommenttien virta

Aiheet