[-] ananas@sopuli.xyz 23 points 1 month ago* (last edited 1 month ago)

That is not the definition that natural sciences use for natural. Going down that rabbit hole is completely meaningless, since we are no longer talking about science at that point.

In addition, if using your definition, nothing is natural according to our current understanding.

[-] ananas@sopuli.xyz 32 points 1 month ago* (last edited 1 month ago)

No

Slapping "quantum" in front of something does not make it magic.

[-] ananas@sopuli.xyz 49 points 1 month ago* (last edited 1 month ago)

Science deals with the natural, gods are by definition supernatural.

Science can not either prove or disprove existence of supernatural. It may only erode the reasoning why supernatural should exist.

That reasoning is subjective, and as such, there are no definite answers to your question unless we add additional constraints.

1
submitted 4 months ago* (last edited 4 months ago) by ananas@sopuli.xyz to c/cplusplus@sopuli.xyz

WG21 komitean tapaaminen Tokiossa 2024

Mikä komitea, miten kehitys toimii?

C++:n standardia ylläpitää ja kehittää ISO/IEC:n alainen komitea, jota tuttavallisemmin kutsutaan WG21:ksi. Standardi itsessään on kasa mustaa valkoisella, joka kertoo miten C++ -kääntäjien kuuluu toimia. Tämän perusteella sitten eri toimijat voivat tehdä kääntäjästä implementaation. Yleisimmät kolme implementaatiota ovat Microsoftin MSVC, GNU:n g++, ja LLVM:n clang, joita sitten käytetään C++ -ohjelmien tekemiseen. Standardin virallinen versio on ISO:n maksumuurin takana, mutta uusin vedos on sama paperi ja saatavilla julkisesti useammassa muodossa.

C++:n standardikomitea pitää tapaamisen kolme kertaa vuodessa, ja julkaisee uuden version kielestä kolmen vuoden välein. Tällä hetkellä työn alla ovat C++26 ja C++29. Komitean sisällä taas on erillisiä työryhmiä, jotka keskittyvät kapeammin eri aihetta koskeviin uudistuksiin ennen kuin ne tuodan isomman porukan äänestettäviksi. Tarkempaa kuvausta komitean rakenteesta löytyy isocpp:n sivuilta.

Viimeisimmät tapaamiset tätä kirjoittaessa ovat olleet marraskuussa 2023 Konassa, Havaijilla WorldQuantin järjestämän, ja juuri pari päivää sitten loppunut Woven by Toyotan järjestämä Tokion tapaaminen.

Suomesta komitean toimintaan pääsee osallistumaan SFS/SR317:n kautta. Sama koskee useampaa muutakin kieltä, kuten esimerkiksi Adaa, Cobolia, FORTRANIA ja C:tä.

Miten minä tähän liityn?

Aloitin hitaasti aktiivisemman C++:n kehityksen seuraamisen noin 15 vuotta sitten kun C++11:sta (silloimmin C++0x:ää) oltiin julkaisemassa. Enemmän tai vähemmän yllättäen liityin loppujen lopuksi itsekin WG21:eeni Timur Doumlerin innoittamana, ja Tokion tapaaminen oli ensimmäinen jossa olin kasvotusten muiden WG21:n jäsenien kanssa enkä vain osallistumassa Zoomin välityksellä. Kiitoksia työnantajalleni Buutille matkan sponsoroinnista.

Komitean sisällä on kolme ryhmää joiden toiminnassa yritän olla mukana. Nämä ovat SG20 (Opetus), SG6 (Numeriikka) ja EWG (Kielen kehitys), mainitussa järjestyksessä. Tämä antaa ehkä vähän näkymää siihen millä perusteella valitsen mistä tulee tännekkin kirjoitettua, ja jos joku muu osa-alue kiinnosta enemmän niin tällaisia "matkaraportteja" löytyy enemmänkin. Komitean virallisen epävirallinen laajempi yhteenveto löytyy Redditistä.

Mitäs siellä sitten tehtiin?

Vahvistettuja uutuuksia C++26:een

17 uutta ehdotusta hyväksyttiin C++26:een. Osa näistä oli hyvinkin simppeleitä kuten se, että tyhjä std::println() tulostaa tyhjän rivinvaihdon, mutta luettelen muutaman joita pidän itse mielenkiintoina.

Erroneous behaviour for uninitialized reads

Paperin oma yhteenveto on erittäin hyvin selitetty, ja suosittelen lukemaan sen kiinnostuneille. Paperin idea on lisätä erronous behaviour -käsite standardiin.

Reading an uninitialized value is never intended and a definitive sign that the code is not written correctly and needs to be fixed. At the same time, we do give this code well-defined behaviour, and if the situation has not been diagnosed, we want the program to be stable and predictable. This is what we call erroneous behaviour.

Ja käyttää tätä alkajaisiksi alustamattomien arvojen lukuun. Kaikin puolin laatua 🎉

Trivial infinite loops are not Undefined Behavior

C++:ssa päättymättömät silmukat ovat olleet UB:tä hyvin pitkään, ja kääntäjät ovat saaneet tehdä kummallisia kikkoja optimoinnin ja suorituskyvyn niitten tapauksessa. Ryöstääkseni esimerkin suoraan paperista

#include <iostream>

int main() {
  while (true); 
}

void unreachable() {
  std::cout << "Hello world?\n";
}

Ja tulokset

[ananas@mellori (0) ~]$ clang --version
clang version 17.0.0 (https://github.com/llvm/llvm-project.git 68a09c929003bf6af41162ed9e6dc4713d96a997)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/local/bin
[ananas@mellori (0) ~]$ clang++ wtf.cpp -O2 && ./a.out 
Hello world?
[ananas@mellori (192) ~]$ 

Mikään ei estänyt kääntäjiä käsittelemästä tätä tilannetta odotetusti aiemminkaan (ja sekä gcc että MSVC tietääkseni hoitivat tämän aina kunnialla), mutta nyt standardissa sanotaan suoraan että tätä ei saa tapahtua tyhjien silmukoiden tapauksessa.

= delete("should have a reason");

Paatuneet kirjastonkirjoittajat kuten allekirjoittanut tykkäävät yrittää parantaa kirjastosta karanneita virheilmoituksia, ja tämän paperin hyväksymisen jälkeen se muuttui aavistuksen verran helpommaksi. Kaikessa yksinkertaisuudesaan, C++26:ssa voidaan kirjoittaa jotain tyyliin

class handle
{
    handle(const handle&) = delete("cannot copy a handle, use move instead");
};

ja loppukäyttäjä saa suoraan järkevän ilmoituksen virheestä.

Unified Function Call Syntax peruttu

Maanantaina aloitusseremonioiden jälkeen olin valmistautunut lähinnä Herb Sutterin UFCS:n vastutukseen, mistä oma vastineemme löytyy täältä.

Kaikki Suomen aktiiviset edustajat ovat aika samaa mieltä siitä että koko ehdotus tulisi polttaa ja tuhkat ampua aurinkoon, kuten vastineen nimilistasta voikin päätellä. UFCS olisi saattanut olla hyvä idea jos se olisi pultattu kieleen 40 vuotta sitten. Kieliä joissa vastaava ominaisuus on täysin käyttökelpoinen on olemassa, mutta kyseisen ominaisuuden pulttaaminen kiinni kieleen tässä välissä vaatii aika paljon vakuuttelua että uskoisin ettei se olisi täysi katastrofi. Onnistuimme parissa minuutissa keksimään kasan bugeja joita kääntäjä ei voi suoraan tarkistaa esimerkki-implementaatiosta, joista vain pari päätyi vastineeseen. Omasta mielestäni kyseinen ominaisuus myös tekee C++:n kaltaisesta kielestä entistä vaikeamman hahmottaa, ja C++:n ei todellakaan tarvitse olla yhtään vaikeampi sillä alalla kuin se jo on.

Taistelu kuitenkin siirtyi eteenpäin, sillä Herb Sutter ei halunnut esittää paperiaan vastaamatta vastineeseen, joten katsotaan miten pitkälle tässä ketjussa päästään.

Isot jutut; Reflektio ja kontraktit

Isot asiat joita on suunniteltu C++26:een, eli reflektio ja kontraktit veivät molemmat kokonaisen päivän EWG:ltä. Valitettavasti itse missasin reflektiopäivän lähes kokonaan, koska numeriikka meni sen kanssa päällekkäin. Reflektio tuntuu etenevän aikataulussa, eikä sille ole vastustusta jonka kuvittelisi pysäyttävän koko homman. Toivoisin itse lähinnä parempaa syntaksia, mutten ole äänestämässä kyseistä ominaisuutta vastaan nykymuodossakaan. Syntaksi on vain hieman enemmän kuin vähän vihamielisen oloinen kieleen vähemmän tutustuneille kehittäjille ja kun otin asian esiin yleinen kommentti oli "eihän sitä tarvi heti alussa opettaa".

Oma vastaukseni tuohon alkoi olla tonnin seteli-ilme. Voi olla että joudun vielä kirjoittamaan ja esittämään oman paperini aiheesta.

Kontraktit vaikuttavat hemmetin siistiltä ominaisuudelta, mutta niissä on pari hyvin mielipiteitä jakavaa ominaisuutta ja EWG tuntuu hyvin jakaantuneelta nykyisen esityksen suhteen. Oma luotto ei riitä siihen että näistä erimielisyyksistä päästäisiin eroon sillä aikataululla, että kontraktit nähtäisiin välttämättä C++26:ssa, mutta ratkaisuehdotuksia oli jo ilmassa. En ole itse vakuuttunut nykyisestä ehdotuksesta, koska epäilen että se on nykyisessä muodossaan taas yksi lisäominaisuus jonka iso osa koodikannoista vain bännää suoriltaan joko syystä tai ilman sellaista. Toivoisin että kyseinen ominaisuus tulisi kieleen siten, että AUTOSAR-maailma ja reaaliaikaohjelmoijat pystyisivät käyttämään kyseistä ominaisuutta ilman suurempia murheita, enkä jäänyt käsitykseen että olisin lähellekään ainoa tämän mielipiteen kanssa. Microsoftilla oli myös omat näkemyksensä asiasta, enkä ole erityisen eri mieltä aiheesta.

Patternimätchäys (en tiiä mikä tää on oikeasti suomeksi)

Isohkompi ominaisuus jota itse olen toivonut kieleen jo vuosia on patternmätchäys. Optimistisesti ajatellen se saattaisi keritä C++26:een, mutta 29 on valitettavasti realistisempi vaihtoehto. Joskus vuonna 2019 naureskelin että kumpaanhan tämä ominaisuus tulee ensin, omaan lelukieleen vai C++:aan ja en ole aivan varma mitä ajattelen asiasta tällä hetkellä.

Joka tapauksessa, pienistä maanjäristyksistä huolimatta, iso osa keskiviikosta kului tämän parissa. Äänestyksissä positiivisena puolena tuli että 43 äänestäjää oli ominaisuuden jatkokehittämisen puolesta, 0 neutraalia ja 0 vastaan. Nyt lähinnä tarvittaisiin kesän tapaamiseen ajantasainen implementaatio ominaisuudesta kääntäjään että sillä olisi toivoa ehtiä C++26:een. Sain autettua tämän kanssa sen verran että kaivoin 4-5 vuotta vanhan clang-implementaation naftaliinista ja rebasetin sen uusimpaan päähaaraan miitin aikana.

Numeriikkatarinoita

Numeriikkaryhmä kokoontui koko tiistain ja puolet perjantaista. Isoimpana juttuna siellä puolella on yksikkökirjasto standardiin. Tämä tähtää vasta C++29:ään, joten sen hiomiseen on hyvä aika jäljellä. Implementaatio joka seuraa nykyistä esitystä löytyy täältä. Tyyppijärjestelmän käyttö yksikkötarkastuksiin ja -muunnoksiin on hemmetin hyvä tapa vähentää bugeja ja tehdä koodista uskomattoman paljon luettavampaa ilman että ajonaikainen suorituskyky laskee, ja on valitettavan vähän käytössä Suomen C++-maailmassa. Hyvän yksikkökirjaston tekeminen ei myöskään ole aivan triviaali homma, ja sellaisten käyttö on hyödyllistä laajasti sekä teollisuudessa että akatemisessa maailmassa, joten tämä olisi hyvä lisä standardikirjastoon.

SG6:ssa tarkoitus olisi saada ehdotukseen jonkinlainen tasapaino aikaiseksi käyttäjäystävällisyyden, matemaattisen tarkkuuden ja C++:n ominaisuuksien välille. Nykyinen ehdotus on aika tuhti matemaattisesti, joten käyttökokemuksien haku kirjastolle on tällä hetkellä aika korkealla prioriteetillä. Jos käytätte linkitettyä kirjastoa niin kannattaa antaa palautetta suoraan githubin keskusteluihin.

Numeriikkahuoneessa käsiteltiin myös käyttäjien määrittelemien tyyppien toimintaa std::simd:in kanssa, mietittiin atomäärisiä liukuluku min/max-funktioita ja rajoitettuja numerojoukkoja ja yritettiin päästä eroon ongelmallisista pyöristysmoodeista.

Muita mielenkiintoisia ehdotuksia

EWG:ssä tuli vastaan myös muita mielenkiintoisia ehdotuksia joihin en ollut etukäteen hirveän tarkkaan tutustunut. Näistä Trivially relocate ja Replacement functions jäivät parhaiten mieleeni. Ensimmäinen vastaa nähdäkseni hyvin pitkälle Rustin move-operaatiota ja jälkimmäinen antaa mahdollisuuden antaa uusi nimi ilmaisuille (aliasoida expressioneita näin finglishiksi).

[-] ananas@sopuli.xyz 16 points 4 months ago

I don't think many people have good understanding of what living standard even actually means, which in turn causes fear and anxiety when they are told it would drop. And I think it is much overexaggerated how much this drop would actually affect daily life for majorty of the people around the world.

[-] ananas@sopuli.xyz 22 points 5 months ago

"But the Finnish position is clear: We are not right now sending any troops and not willing to discuss that.”

This is why you read the articles, folks.

[-] ananas@sopuli.xyz 17 points 7 months ago* (last edited 7 months ago)

Mää toivoisin et tää "rasismi nimi virtanen" ei ois se automaattireaktio näihin, koska se hyvin harvoin on oikee syy eikä sen toistaminen auta asiaan yhtään. Jos antaa kuvan ulkomaisille työnhakijoille että heidät hylättiin koska nimi tai koska rasismi, se on vähän itseään ruokkiva ennustus koska nämä eivät silloin korjaa juurisyitä miksi eivät päässeet töihin. En väitä ettei se olisi koskaan syynä, mutta hyvin usein se ei ole se juurisyy miksi työllistyminen on vaikeaa.

Otetaanpa tämä artikkelin kaveri esimerkiksi. Selaamalla kaverin LinkedIn-profiiliin huomaa että edellinen homma on loppunut maaliskuussa 2023. IT-alalla valitettavasti ihan syntysuomalaisetkin dippainssit ja FM:t saavat helposti samanlaisia 10kk lukuja aikaan jatkuvasti, koska sisäänheitto (entry-level-hommat näin lontooksi) tälä alalle on käsittämättömän pientä, koska juuri kukaan ei halua opettaa junnuja. Toiseksi seikaksi huomaa nopeasti että kaveri on käyttöliittymäsuunnittelija. Tähän hommaan on tällä hetkellä koko Suomessa 4 avointa työpaikkaa MOL:in ja Duunitorin haut yhdistämällä, ja käyttöliittymäsuunnittelijoita on 13 tusinassa. Näistä neljästä paikasta yksi on harjoittelijan paikka ja kaksi on senioripaikkoja. Viimeinen on mobiiliohjelmoijan paikka UI-suunnitelulla kyljessä.

Oman CV:nsä ja Linkkarinsa mukaan kaveri on pätevä ainoastaan harjoittelijan hommaan näistä avoimista töistä. Kummastakaan ei löydy minkäänlaista näyttöä ohjelmointitaidoista, joita kolme neljästä avoimesta työpaikasta olisi vaatinut. IT-alalla ei yleensäkään hirveän pitkälle pötki jos sanoo olevansa käyttöliittymäsuunnittelija eikä löydy edes javaskriptiä taidoista. CV, portfolio ja Linkkari sinänsä muuten näyttää järkevältä kokonaisuudelta, mutta sieltä puuttuu alan oleellisia taitoja. Tähän ei tartteta edes mitään vuosien lisäkoulutusta, vaan noi taidot voi hankkia itsenäisesti. Mutta aika harvalla firmalla on tarvetta käyttöliittymäsuunnittelijalle joka ei välttämättä pysty toteuttamaan suunnittelemaansa käyttöliittymää.

Mää voin mennä syvemmällekkin tähän ongelmaan artikkelin Khoa Vun ulkopuolelta, ainakin IT-alan osalta. Mää en tiiä mitä HR-puoli rekryssä tekee tarkalleen kun olen itse hoitanut ainoastaan teknistä puolta, mutta sen puolen kokemuksellakin voi kyllä kertoa tarinaa, ja hyvin harvoin se ongelma on nimi tai rasismi.

[-] ananas@sopuli.xyz 34 points 8 months ago

Sweeney has had a chip on his shoulder with Linux for at least 15 years. It's honestly a bit weird since if you look at stuff before around 2005, he had quite a different tone.

[-] ananas@sopuli.xyz 23 points 1 year ago

I have yet to meet a single pro-Russian leftist in my country. Or a tankie. Sure, shit like lemmygrad, r/communism, etc. exists, but you have to go digging pretty deep to find those people.

Most leftists I know, even those who identify as socialists are pretty much in the "yeah, fuck Russia" camp. To the point that they openly advocate financing Ukraine.

This video is blatant propaganda piece, and not even truthful at what it tries to be.

[-] ananas@sopuli.xyz 49 points 1 year ago

Otan laadun yli määrän. Keskimäärin sopulissa / lemmyssä tuntuu olevan taso korkeammalla kuin reddittisuomessa joten olen aivan tyytyväinen täällä vaikka lukemista onkin vähemmän. Tuleepahan ainakin luettua oikeasti tarkemmin itsekkin sitten muiden postauksia.

[-] ananas@sopuli.xyz 22 points 1 year ago* (last edited 1 year ago)

Täähän se on.

Mää en edes jaksa syyttää Perussuomalaisia tästä kaikesta. Kyllähän sitä tiesi että kun laittaa apinoita lavalle niin paska lentää yleisöön. Mutta se että on kolme puoluetta jotka käytännössä toteaa et "joo tää on ok" on aivan käsittämätöntä, ja just sen takia et jos tämmöne "dialogi" politiikas normalisoituu niin aika vaikeeks menee ajaa mitään yhteisiä asioita oikeesti mitenkään ratkaisuperusteisesti eteenpäin.

Mää en tiiä eikö Orpon ylpeys vaan kestä vai mikä tässä on. Miehen käsitys todellisuudesta on joko hapartunut aika rankasti tai sitten virheen myöntäminen on niin kova pala että tehdään käytännössä mitä tahansa että saadaan edes joku vakuutettua siitä et kyllähän ne ohjat vielä omissa käsissä on.

Tyyppi on pääministeri, se on kirjaimellisesti sen työnkuvassa saaha tuo sirkus kuntoon, mutta tämmöistä paskakasaa on vähän vaikea työntää maton alle kun haju tunkee joka paikkaan ja matossa o kohtuullisen epäilyttävä kohouma senkin jälkeen. Ja jostain syystä Orpon repertuaarissa ei tunnu olevan muuta kuin se että yrittää kieltää ongelman olemassaoloa ilman että tekisi sille oikeasti mitään. Kyllähän tää näyttää että Perussuomalaiset vie koko puoluetta ku pässiä narussa.

[-] ananas@sopuli.xyz 21 points 1 year ago

Tässä on ihan hyvää tekstiä siitä miksi tuo on ongelmallista.

Oli tää nyt hyvä syy eli ei kutsua eduskuntaa pois kesätauolta itse kenenkin mielestä, niin ei tuo oikein puhemiehen roolia kunnioita, mikä o IMO huomattavasti oleellisempaa ku se et mikä se päätös itessään oli.

1
submitted 1 year ago by ananas@sopuli.xyz to c/suomi@sopuli.xyz

Mielestäni reittäin jees artikkeli taloustieteestä. Käsittelee lähinnä uusliberaalin suuntauksen ylikorostuneisuutta.

1
Kanahwa Black (music.youtube.com)

Nechochwen seems pretty good to me

-1
submitted 1 year ago* (last edited 1 year ago) by ananas@sopuli.xyz to c/suomi@sopuli.xyz

Menis nukkuu ja kattois mitä on tapahtunu itänaapurissa huomenna.

0
submitted 1 year ago by ananas@sopuli.xyz to c/suomi@sopuli.xyz

Aika lailla just sitä mitä otsikko kertoo.

Meikästä on ihan siistiä et jossain sentää veetää asioita parempaa suuntaan.

1
submitted 1 year ago by ananas@sopuli.xyz to c/suomi@sopuli.xyz

Tämä näytti olevan useammallakin <aliredditin lemmy/kbin-vastineella>, mutta aattelin nakata tännekin, kun tuntuu et nää "EU tekee jotain järkevää" - uutiset jää usein vähä katveeseen Suomen mediassa.

1
submitted 1 year ago* (last edited 1 year ago) by ananas@sopuli.xyz to c/tampere@sopuli.xyz

Otsikko maalaa taas vaihteeksi aika paljon kauheampaa kuvaa kuin uutinen itsessään. Ihan lukemisen arvoinen juttu ja sieltä löytyy positiivisiakin puolia.

Tän otsikko ois voinu ihan hyvin olla jotain tyyliin "neljän vuoden ylijäämän jälkeen Tampereen talous pakkaselle" tjsp., mut ehkä selkeempi otsikointi ei sitte tuota klikkejä.

1
submitted 1 year ago* (last edited 1 year ago) by ananas@sopuli.xyz to c/black_metal@sopuli.xyz

Since lemmy is still a small place, and there's not too many of us yet here (what, 12?), I thought I'd create a thread for intros to keep things a bit lively. Introduce yourself in the comments and in the spirit of the community throw in your favourite Black Metal band or gig or smth.!

Don't know if anyone is interested in this kind of stuff, but might as well throw it there.

1
submitted 1 year ago* (last edited 1 year ago) by ananas@sopuli.xyz to c/black_metal@sopuli.xyz

Thought I'd throw in some black metal bands around the world, might be less known ones in the mix. Feel free to drop your own below!

Folk Black from Taiwan. Pretty fucking good band in my opinion. (And they got Kin Lin as a vocalist in 2021, everything that woman touches turns to gold, a bit like Taiwanese Dan Swanö) 暴君 - 明潭終戰 (engl. Bloody Tyrant - Final Battle at the Sun-Moon Lake)

Weird shit from Brunei, almost like doom black metal or smth.? Don't know, but I like it. Noiratasya - ...of Blashphemy, in Obscurity

More folky stuff from China this time. I don't think Black Kirin is that underground, but it might be just me. Black Kirin - 黄河

Ok, have to include Finnish shit as well, just because I like that they sing (growl?) in Finnish instead of the usual English. Havukruunu - Pohjolan Tytär

And this one was seen coming from afar. Black Metal from Saudi-Arabia. Al-Namrood - Asdaa Al Dmar

Mongolian Katatonia that hasn't decided if it got past Dance of December Souls or not. Not sure everyone would agree with the band that this is Black Metal anymore, but well, the band thinks it is and it does have old (mixed with new) Katatonia vibes. Karmantic - Evaporate

[-] ananas@sopuli.xyz 18 points 1 year ago

From my own experience:

  1. Start using open source stuff.
  2. Get annoyed by lack of a feature / a bug / something
  3. Fix it, without ever intending to upstream the changes
  4. Notice somebody has made an issue about a thing you already fixed
  5. Send the patches to upstream.
  6. Repeat ad infinitum.

That's pretty much how I've ended up contributing to a plethora of different stuff.

view more: next ›

ananas

joined 1 year ago