{"id":2286,"date":"2008-04-10T14:13:10","date_gmt":"2008-04-10T11:13:10","guid":{"rendered":"http:\/\/mummila.net\/vuorovaikutus\/?p=95"},"modified":"2008-04-10T14:13:10","modified_gmt":"2008-04-10T11:13:10","slug":"kolumni-aksasta-kiinni","status":"publish","type":"post","link":"https:\/\/mummila.net\/nuudelisoppa\/2008\/04\/10\/kolumni-aksasta-kiinni\/","title":{"rendered":"Kolumni: \u00c4ks\u00e4st\u00e4 kiinni"},"content":{"rendered":"<p><a href=\"\/vuorovaikutus\/files\/2008\/ikkunan-sulkemisnappi.png\"><img loading=\"lazy\" decoding=\"async\" src=\"\/vuorovaikutus\/files\/2008\/ikkunan-sulkemisnappi.png\" alt=\"Gnome-ty\u00f6p\u00f6yd\u00e4ll\u00e4 olevan ikkunan sulkemisnappi\" width=\"100\" height=\"60\" style=\"float: right;margin: 0 0 2px 5px\" \/><\/a> Viel\u00e4 t\u00e4n\u00e4 aamuna olin varma siit\u00e4, ett\u00e4 <a href=\"http:\/\/mummila.net\/vuorovaikutus\/2008\/02\/15\/transmissionin-sammutusnappi-ei-sammuta-ohjelmaa\/\">ohjelman  p\u00e4\u00e4ikkunan sulkemisnapin valitsemisen tulee sammuttaa ohjelma<\/a> riippumatta siit\u00e4, onko ohjelmalla ilmoitusaluekuvaketta vai ei. Ajattelin, ett\u00e4 sellaisen ohjelman, joka haluaa tarjota k\u00e4ytt\u00e4j\u00e4lle mahdollisuuden sulkea sen p\u00e4\u00e4ikkuna sammuttamatta itse ohjelmaa, tulee tehd\u00e4 niin vain erillisen valitsimen kautta. Tyypillinen esimerkki t\u00e4llaisesta erillisvalitsimesta on <code>Tiedosto<\/code>-valikossa oleva <code>Pienenn\u00e4<\/code>-kohta.<\/p>\n<p>Sitten luin <i>Launchpadissa<\/i> t\u00e4st\u00e4 aiheesta k\u00e4yty\u00e4 keskustelua, joka py\u00f6rii <a href=\"https:\/\/bugs.launchpad.net\/rhythmbox\/+bug\/38512\"><code>Rytmilaatikon<\/code> p\u00e4\u00e4ikkunan sulkunapin<\/a> ymp\u00e4rill\u00e4. T\u00e4m\u00e4n kirjoitushetkell\u00e4 Rytmilaatikko toimii niin kuin yll\u00e4 mainostin viel\u00e4 aiemmin vankkumattomasti uskovani ohjelmien pit\u00e4v\u00e4nkin toimia. N\u00e4ht\u00e4v\u00e4sti se on jossain vaiheessa toiminut toisinkin. Jotkut k\u00e4ytt\u00e4j\u00e4t haluaisivat palata entiseen k\u00e4yt\u00e4nt\u00f6\u00f6n, ja yll\u00e4tyin huomatessani pit\u00e4v\u00e4ni joitakin n\u00e4iden k\u00e4ytt\u00e4jien argumentteja varsin p\u00e4tevin\u00e4.<\/p>\n<p>Olin ajatellut, ett\u00e4 ohjelman p\u00e4\u00e4ikkunan sulkemisnapin <em>teht\u00e4v\u00e4<\/em> on sammuttaa ohjelma, ja niinp\u00e4 t\u00e4st\u00e4 k\u00e4yt\u00e4nn\u00f6st\u00e4 poikkeaminen rikkoo napin toiminnallisuuden. Mutta mik\u00e4li luen vastustajien argumentteja oikein, heid\u00e4n tulkintansa on, ett\u00e4 <em>ikkunan kuin ikkunan<\/em> sulkemisnapin teht\u00e4v\u00e4 on <em>sulkea ikkuna<\/em>, eik\u00e4 sen takia ole johdonmukaista, jos sulkemisnappi sulkee <em>ohjelman<\/em> silloin, kun sen graafisena ilmentym\u00e4n\u00e4 n\u00e4yt\u00f6ll\u00e4 on ikkunan lis\u00e4ksi ilmoitusaluekuvake. Huomasin oman kantani alkavan horjua, kun en ainakaan ihan suoralta k\u00e4delt\u00e4 kyennyt tyrm\u00e4\u00e4m\u00e4\u00e4n t\u00e4t\u00e4 n\u00e4kemyst\u00e4 perusteettomana.<\/p>\n<p>Itse asiassa ajatus ikkunan sulkemisesta ikkunan sulkunapin ensisijaisena teht\u00e4v\u00e4n\u00e4 tuntuu niin vieh\u00e4tt\u00e4v\u00e4n yksinkertaiselta, ett\u00e4 haluaisin k\u00e4\u00e4nt\u00e4\u00e4 kelkkani t\u00e4lle ajatukselle perustuvaan suuntaan. Sek\u00e4\u00e4n ei kuitenkaan ole t\u00e4ysin ongelmatonta, sill\u00e4 sovelluksen p\u00e4\u00e4ikkunan sulkemisen assosiointi ohjelman suorituksen p\u00e4\u00e4ttymiseen on sekin hyvin perusteltu ratkaisu: tarvitsee vain kuvitella sit\u00e4 painajaista, jonka p\u00e4\u00e4ikkunansa sulkemisen my\u00f6t\u00e4 &mdash; siis kaikkien graafisten ilmentymiens\u00e4 kadottuakin &mdash; k\u00e4yntiin j\u00e4\u00e4v\u00e4t ohjelmat aiheuttaisivat.<\/p>\n<p><q>P\u00e4\u00e4ikkunan sulkemisesta kuvakkeeseen<\/q> -ratkaisun kannattajat eiv\u00e4t tietenk\u00e4\u00e4n aja takaa ikkunan sulkunapin toiminnan rajaamista ikkunan sulkemiseen n\u00e4in puristisessa merkityksess\u00e4. P\u00e4\u00e4ikkunan sulkemiseen assosioitavan <em>toiminnon pysyvyys<\/em> ei kuitenkaan heid\u00e4n mielest\u00e4\u00e4n ole ratkaisevinta. Ratkaisevinta on <em>ohjelman suorituksen jatkuvuuden<\/em> assosiointi kaikkiin sovelluksen n\u00e4yt\u00f6lle tuottamiin graafisiin ilmentymiin. T\u00e4st\u00e4 perspektiivist\u00e4 tarkasteltuna ohjelman suorituksen p\u00e4\u00e4ttyminen silloin, kun sen kahdesta j\u00e4ljell\u00e4olevasta ilmentym\u00e4st\u00e4 toinen suljetaan, ei ole johdonmukaista.<\/p>\n<p>Ongelma on pohjimmiltaan kaksiosainen. Ensinn\u00e4kin tulisi luoda johdonmukainen k\u00e4yt\u00e4nt\u00f6 sille miten sovellukset, ikkunat ja ilmoitusaluekuvakkeet k\u00e4ytt\u00e4ytyv\u00e4t ja miten ne suhteutuvat toisiinsa. Toisekseen ohjelmien tulisi sen j\u00e4lkeen sitoutua t\u00e4h\u00e4n k\u00e4yt\u00e4nt\u00f6\u00f6n. T\u00e4ll\u00e4 hetkell\u00e4 k\u00e4yt\u00e4nt\u00f6 vaihtelee ohjelmasta toiseen siirrytt\u00e4ess\u00e4, sill\u00e4 riitt\u00e4v\u00e4sti perusteltua k\u00e4yt\u00e4nt\u00f6\u00e4 ei ole m\u00e4\u00e4r\u00e4tty miss\u00e4\u00e4n <a href=\"http:\/\/en.wikipedia.org\/wiki\/Human_interface_guidelines\">k\u00e4ytt\u00f6liittymien ohjenuorassa<\/a>.<\/p>\n<p>Olisiko t\u00e4llaisen k\u00e4yt\u00e4nn\u00f6n siis perustuttava ohjelmien pysyvyyteen ja kaikkiin graafisiin ilmentymiin t\u00e4m\u00e4n pysyvyyden kuvastimena, vai p\u00e4\u00e4ikkunan sulkemiseen assosioitavan toiminnon pysyvyyteen? Viel\u00e4 t\u00e4n\u00e4 aamuna olisin vannonut ikkunansulkemistoiminnon assosiaatioiden pysyvyyden nimeen, mutta nyt en en\u00e4\u00e4 osaakaan sanoa varmasti. Ainakin n\u00e4in tuoreeltaan ohjelmien pysyvyys kuulostaa ikkunansulkemistoiminnon pysyvyytt\u00e4 elegantimmalta perusl\u00e4ht\u00f6kohdalta.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pit\u00e4isik\u00f6 ohjelman p\u00e4\u00e4ikkunan sulkemisnapin lopettaa sovellus riippumatta siit\u00e4 onko ohjelmalla ilmoitusaluekuvaketta vai ei?<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2286","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/posts\/2286","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/comments?post=2286"}],"version-history":[{"count":0,"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/posts\/2286\/revisions"}],"wp:attachment":[{"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/media?parent=2286"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/categories?post=2286"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/tags?post=2286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}