Tulipa opinnäytteiden kanssa vastaan tilanne, että piti saada tavallinen pdf-tiedosto käännettyä pdf/a-standardin mukaiseksi arkistointia varten. Googlausrallin perusteella OCRmyPDF on tässäkin käytössä ystävä – aiemmin olen käyttänyt sitä pelkkään kirjaskannien OCR:ään. Jotakuinkin näin:
Jos mukaan täytyy uittaa metadataa, niin niitä saa mukaan seuraavasti: –author “Herra 47”. Muut tunnetut tägit ovat –subject, –title ja –keywords. Tässä vaiheessa kannattanee tehdä jo erillinen skriptitiedosto, koska koko sotku voi olla kohtuuttoman pitkä komentoriville. Näin helpostiko se kävi?
No eipä tietenkään. Verkossa oleva PDF/A-validaattori valittaa, että päivämäärä on väärässä formaatissa. Pikavilkaisulla en keksi, että miksi, mutta ilmeisesti pikepdf:ssä on aiheeseen liittyvä bugi, joka on vasta hiljattain korjattu. Koneeni paketinhallinnasta tulee liian vanha versio, joten eipä onnistu ilman erillistä työkalua. Kaikenlaisia sekavia skriptejä löytyi asian korjaamiseksi, mikä tuntui taas mutkistavan asiaa. Onneksi vastaan tuli myös simppeli metadataeditori Paper Clip, jolla päivämäärän sai tehtyä uusiksi, ja sitten meni jo validointikin läpi.
In 2019 I published a paper called Trackerit: paradigman synty, kukoistus ja myöhemmät vaiheet in Finnish. After an unfortunate editorial process I pulled the extended English version out from a journal, even if it had already passed peer review, and decided to simply republish a translated version of the original as Trackers: The Rise, Bloom and Later Developments of a Paradigm in WiderScreen. Even if I tried to check my facts, a couple of inaccuries had slipped in, as kindly pointed out by Saga Musix.
The “M.K.” tag found in mods is often attributed to Mahoney & Kaktus of NoiseTracker fame, but more likely it refers to Michael Kleps who introduced it in a later version of Soundtracker.
The Scream Tracker 3 file format can accommodate 32 channels, but the publicly available versions of the original program only let you edit 16 sample and 9 FM channels.
While it’s true that the CIA-based tempo command was introduced in later ProTracker versions, Obarski’s Soundtracker already had tempo as part of its file format. You couldn’t initially change it within the editor, though.
The moral of the story: don’t repeat common “knowledge” without checking the details once more 🙂
En tiedä, mitä olen tehnyt väärin, mutta Facebook-feedini on viime aikoina ollut aivan täynnä bottien kaapatuilta tai valetileiltä postittamaa roskaa. Ensin tuli sadoittain Jennifer Anistonia ja Sandra Bullockia, sitten feikki-intiaania ja nyt viime aikoina aivan loputtomasti lammikossa jäkittäviä, tekoälyn luomia lapsi- ja koiraparkoja sekä hurskaita, kuulemma kauniita lentoemäntiä. Seassa silloin tällöin jotain oikeaakin sisältöä, mutta tuskaisen vähän. Suuri virheeni on varmaan ollut skeidan raportointi, jonka algoritmi on tulkinnut mielenkiinnoksi aihetta kohtaan.
En ole ihan tarkalleen edes perillä siitä, mitä näillä kaikilla feikeillä haetaan. Veikkaisin, että pornon mainostusta, tilien kaappaamista, hyväuskoisten rahojen kuppaamista ja muuta sellaista pyyteetöntä. Internetissä eläneelle spämmi ja khalastelu ovat tuttu ja arkipäiväinen juttu, mutta mitä en ymmärrä on Facebookin täysi toimettomuus ongelman suhteen. Itse olen pariinkin kertaan joutunut jäähylle ihan normaaleista postauksista, mutta spämmin raportoiminen ei tunnu johtavan yhtään mihinkään. Jos vaivautuisivat filtteröimään edes kaiken roskan, jossa on sanat “beautiful cabin crew” ja #scarlettjohansson, niin kökön määrä putoaisi murto-osaan. Näin ei kuitenkaan tapahdu, joten ainoa selitys on, että Fese haluaa tuota jöötiä palveluunsa. Dollarit on epäilemättä laskettu.
Koodarina rupesin miettimään käytännöllistä algoritmia, joka nappaisi automaattisesti suurimman osan roskasisällöstä. Optimoitavia ominaisuuksia ovat ainakin toteutuksen helppous, laskennallinen keveys, pieni muistinkäyttö, osumatarkkuus ja skaalautuvuus, sillä onhan käsiteltävä datamäärä valtava. Hetken pähkäilyn jälkeen välähti ja keksin lupaavan ratkaisun, jonka eri vaiheet näyttävät tältä:
Merkitse kaikki uudet postaukset spämmiksi ja poista ne
Osumatarkkuus tulee olemaan helposti ainakin 99 %, mitä parempaan tuskin pystyvät sen enempää neuroverkot kuin tilastolliset menetelmätkään. Pienenä puutteena hivenen oikeaakin sisältöä saattaa mennä mukana, mutta se vaarahan on joka tapauksessa olemassa. Toteutus on lisäksi erittäin helppo, vaaditun laskentatehon sekä muistinkulutuksen suhteen kevyt ja – mikä parasta – skaalautuu täysin lineaarisesti annetun syötteen mukana O(n). Keksikääpä itse parempi!
Monta vuotta pyristelin vastaan, mutta nyt kun skannaustarpeita tuntui ilmenevän entistä enemmän, niin päädyin hankkimaan talouteen taas tasoskannerin. Taannoin olen yhden tai ehkä kaksikin omistanut, mutta ne olivat kadonneet ajan virtaan vanhanaikaisina ja liian suurina. Clasulta lähti 79 eurolla Canon CanoScan LiDE 300 – eipä nämä enää paljon maksa uusina. Linux-tukea piti olla ainakin räpläämällä saatavissa (ja on nämä ennenkin toimimaan saatu), joten liikkeelle kohtuullisen toiveikkain mielin.
Riittävän vanhat skannerit tunnistuisivat todennäköisesti jo itsekin, mutta tämä valitettavasti ei. Sane pitää olla asennettuna ja näemmä myös hivenen epäilyttävä Canonin oma ajuri. Eipä tuntunut niilläkään lähtevän, vaan skannerisoftat antoivat periksi heti kättelyssä. Jotain toivoa antoi sentään sudon avulla toimiminen. Lisäsin itseni scanner-ryhmään ja varmuuden vuoksi vielä lp:hen, sillä laitetiedoston oikeudet olivat sillä ryhmällä, minkä jälkeen buutti ja johan soi!
Takavuosina skannailin Xsanella, jolla on mukavan suora yhteys Gimpiin. Muutaman sivun näpläämiseen se varmasti soveltuukin, mutta nyt oli tarkoitus tykitellä kokonainen kirja. Käyttöliittymäkin on jo hieman karski nykykatsannossa. Paremmaksi vaihtoehdoksi liukuhihnatyöhön osoittautui Simple Scan, joka osaa tallentaa kuvat yksittäin tai haluttaessa suoraan koota niistä jopa pdf:n. Ilman säätöjä pdf:stä ei tullut ihan haluttu, joten ajoin jpegit ImageMagickin läpi hieman pienentäen ja kontrastia lisäten. Meisikillä pitäisi onnistua myös pdf:n teko, mutta img2pdf teki saman ilman isompia kikkailuja. Kaupan päälle vielä paketinhallinnasta ocrmypdf ja katso: haku toimii ja tekstiä voi kopioida.
Tämä riittää ainakin toistaiseksi. Osa toiminnoista lienee käytössä vain Windowsin puolella – ainakaan paneelin turhahkot pikanapit eivät tunnu tekevän juuri mitään. Joitakin hienouksia voi myös jäädä pimentoon, mutta tarpeeni eivät ole kovin monimutkaiset ja ahkera skriptaaminen paikkaa puutteita. Hivenen kummallisesti oletuksena lopputulos on ylösalaisin(!), minkä Simple Scan onneksi korjaa parilla klikkauksella. Tämä ei liene sinänsä Linuxin syy, vaan skannaussuunnan, joka kulkee hieman epäintuitiivisesti laitteen etureunasta taaksepäin.
Today I had to update the Zoom client on Linux to 5.17.5 because someone had started a video call with a newer version than what I had. Usually this has caused only irritation, but this time the program just kept freezing, eating memory and finally crashing with a segfault in libQt5Core. I had just updated to newer Nvidia drivers too, but reverting to the old version didn’t help. On another machine with an integrated Intel GPU there were no issues, which pointed the finger at Nvidia as well. Things started looking gloomy, as reinstalling Zoom was of no use and reverting to an older version would not let me join most calls. There is the Web version, sure, but no thanks.
Initial googling around turned up only old problems with useless solutions, but after finding this things took an upward turn. Apparently the crash has to do with downloaded emojis (that haven’t worked anyway), because Zoom tries to load them over and over, leading to a massive memory leak and then segfault. Luckily the temporary solution is easy – delete the .zoom directory in your home directory:
rm -r ~/.zoom
Och samma på finska. Tuorein Zoom (5.17.5) jäi ensin jumiin, söi muistin loppuun ja sitten kaatui. Olin juuri päivittänyt tuoreempiin Nvidian ajureihin, jotka vaikuttivat ensin syypäältä, mutta vanhojen palautus ei auttanut eikä myöskään Zoomin uudelleenasennus tyhjästä. Täältä löytyi onneksi lopulta vinkki ja jonkinlainen selitys ongelmaan: jostain syystä asiakas jää lataamaan loputtomasti ylimääräisiä emojeja, jos sellaisia koneelle on asentanut. Väliaikaisratkaisuna voi poistaa kotihakemistosta hakemiston .zoom ja johan soi:
This one was tricky. I mistakenly declined the SteamCMD license when installing it using apt, and then it decided that I’m a hostile person who doesn’t ever want to install it. The debconf key in question is steam/question and its value should be “I ACCEPT” instead of “I DECLINE”. Directly modifying /var/cache/debconf/config.dat seemed promising, but the wrong value reappered when trying to install again. Finally a script did the trick (run as root at your own risk):
#!/bin/sh
set -e
. /usr/share/debconf/confmodule
db_set steam/question "I AGREE"
db_go
Eräässä projektipöntössä ilmeni 2×8 gigan DDR3-kalikoilla MemTest86:lla satunnaista yhden (1) bitin virhettä tietyssä kiinteässä osoitteessa. Yhtäältä en oikein viitsisi tuollaisen takia ostaa uusia, mutta toisaalta ei tilannetta voi jättää sikseenkään, koska sen yhden bitin muuttuminen voi olla liikaa sopivassa tilanteessa. MemTest kertoo auliisti, että osoite on 4191A9978, mutta mitäs tällä tiedolla sitten tehdään?
Linuxin kernelille on mahdollista kertoa käynnistyksessä, että tiettyjä alueita ei käytetä. Tämän pystyy tekemään joko GRUB_BADRAM-asetuksella tai sitten suoraan kernelin parametrilla memmap. Netistä löytyy vanhoja ohjeita 32-bittisille ytimille, mutta tänä päivänä 64 bittiä on arkipäivää, joten vinkit eivät välttämättä päde sinältään. Tekee säädön kumpaa kautta hyvänsä, täytyy kertoa mikä alue ohitetaan, joko maskilla tai sitten tavumäärä. Koska peeseellä muistisivu on 4096 tavua, seuraava säätö /etc/default/grub-tiedostoon tuottaa halutun tuloksen:
Alkuun lisätään heksaluvun tunnus 0x ja seitsemän nollaa, jotta saadaan oikea 64-bittinen (16 numeroa) osoite, minkä lisäksi kolme alinta numeroa nollataan, jotta saadaan sivun osoite. Vielä pitää ajaa sudo update-grub sekä buutata kone, minkä jälkeen alue 4191A9000–4191A9FFF ei ole enää käytössä, ja ongelmainen muistiosoite suljetaan tylysti pois karkeloista. Neljän kilotavun haaskaaminen ei nykykoneilla merkitse mitään, etenkin kun toisessa vaakakupissa on vakaasti toimiva kone. Dmesg-komennon tulostus varmistaa säädön menneen perille:
Tällaiselle kikkailulle voi tulla tarvetta etenkin, jos kyseessä on emolle kiinteästi juotettu tai erityisen harvinainen/kallis muisti. Jos muistivirheet tulevat satunnaisista osoitteista tai niitä on tolkuttoman paljon, niin peli on toki menetetty.
MemTest errors and Linux command line
And a short summary in English. If there’s an isolate memory issue revealed by MemTest86, it might still be possible to use the memory modules with the help of Linux kernel’s memmap setting – also GRUB_BADRAM does the same, but uses a slightly different format. This might be particularly useful with integrated or rare/expensive RAM. In this example the unstable bit was found at address 4191A9978. Do not follow old instructions meant for 32-bit kernels, but put this in /etc/default/grub instead:
0x (i.e. hex) at the beginning, then seven zeroes to make it 64-bit (16 numbers) and finally the address with the lowest three numbers zeroed. This is because the page size is 4096 bytes on today’s PCs. Then run sudo update-grub and reboot, after which the offending address will not be used by the kernel. To make sure that is the case, check that dmesg agrees:
Losing 4 kilobytes of memory isn’t really any concern today, especially if you get a stable system back that way. If there’s a lot of errors or they appear at random locations, then there’s of course little you can do.
Asensin viikonloppuna vanhahkoa HP Elite 8200 USDT -pikkupurkkia Mintille (21.2) ja kaikki menikin ihan mukavasti siihen saakka, kunnes yritin ripata DVD:tä paketinhallinnasta tulleella HandBrake 1.5.1:llä. Sitten ilmeni, että tekstitysten ajastukset menevät päin honkia. Tämä ei ollut ihan ensimmäinen kerta, kun tällaista tapahtuu, sillä joku takavuosien mätä versio teki suunnilleen samaa. Valitettavasti rippaus tulee olemaan kyseisen HooPeen yksi tärkeimpiä käyttökohteita, joten asiaa ei voinut ohittaa pelkällä olankohautuksella.
Omassa isossa pöntössäni on vielä onnekkaasti Mint 20.3, jonka mukana tulee erinomaisesti toimiva HandBrake 1.3.1. Ilmeisesti subit ovat hajonneet hyvin pian sen jälkeen, kiitos jonkun sählingin. Flatpakista pitäisi tulla tuoreen virallisen version (1.6.1), joten kokeiluun sekin. Tällä kertaa ei näkynyt edes optinen asema, ja foorumeilta löytyi selittelyä siitä, kuinka HandBrake ei edes ole mikään DVD-ripperi, vaan levyn lukemiseen pitäisi käyttää ulkoista ohjelmaa, kuten MakeMKV. Mukana ei myöskään tullut DVD:n dekryptaamiseen vaadittua kirjastoa. Lisää asenteellista mussutusta foorumeilta löytyi aiheesta “distrojen libit on rikki ideologisista syistä, ei oo meidän vika”. En toki ole tilanteesta kovin hyvin kartalla, mutta käytännön lopputulos on joka tapauksessa se, että oletuksena HandBrake kusee Linux-käyttäjän kintuille.
No ehkäpä sitten PPA apuun? Niiden kauttahan saa usein kaikenlaista uudempaa ja korjattua versiota softista. Ensimmäinen löytynyt kandidaatti oli rikki eikä edes asentunut – rupesi myös näyttämään siltä, että se sotkee kohta jotain järjestelmästä, joten lopetin. Seuraavaksi löytynyt 1.6.1 asentui nätisti, luki levyjäkin ja … pilasi subit. Mihinkään itse kääntelyyn ym. rumbaan en halunnut ruveta, joten lopulta vedin koneen sileäksi ja asensin hyväksi havaitun Mint 20.3:n, jonka myötä asiat taas lähtivät rullaamaan. Pahoin pelkään, ettei tämä ongelma tule ratkeamaan kovin äkkiä tai helposti, jos HandBrake-tiimi on siilipuolustuksessa eikä distrojen tekijöitäkään asia tarpeeksi kiinnosta.
There are some ideological reasons as to why the default Chromium setup doesn’t include Google as one of the default search engines. Whatever the case, it’s also true that many people would like to use it nevertheless. This is more of a note to myself so that I find the magic spell when I need it again. Settings – Search engine – Manage search engines and site search – Site search – Add and then Google, google.com and the mystical blurb:
After this you can make it default by clicking the three dots on the right. Can’t really tell if this is the optimal search string, but it seems to work well. Goodbye to that Yahoo mess.
In an earlier post things first looked up and then down, after which I nearly gave up. It turned out that the SBZ simply didn’t want to wake up and at times even completely disappeared from the ALSA card list. I tried kicking it off the PCI bus and rescanning, but that wasn’t much better. At that point I pulled the card from the machine and put it in a plastic bag where other retired PCI(e) cards rot, very likely forever. But… how about removing the card before sleep and then rescanning the bus after wakeup? Let’s create the following script and place it in /lib/systemd/system-sleep:
#!/bin/sh
case "$1" in
pre)
echo 1 > /sys/bus/pci/devices/0000\:05\:00.0/remove
sleep 1
;;
post)
echo 1 > /sys/bus/pci/rescan
;;
esac
Make it executable too: chmod +x soundblaster or whatever name you used. The numbers above on line 5 will probably be wrong for your system, so find out the actual address of your SBZ with lspci. This whole ordeal looks like a dramatic thing to do, but it seems to be the only possibility to get sleep to work – contact me if you know better. After more than ten sleep/wakeup cycles I still didn’t lose sound, so the kludge just might work. If not, I’ll edit the post below (and lose my cool).
Well, of course that wasn’t quite all of it yet. It turns out that when the card reappears after the PCI bus scan, ALSA will happily have forgot all the previous settings done with Alsamixer. The defaults sound pretty awful and the headphones aren’t detected automatically, so what’s next? Luckily this one seems to be easy: configure the card as you see fit using Alsamixer (if you have a small window, note there’s a lot more settings to the right) and then run sudo alsactl store. This is for every user, which is not optimal, but as I’m not sure whether ALSA will load personal settings after wakeup at all, it’ll have to do for now.