Sami Määttä | samimaatta.fi 2025-07-03T19:50:14Z https://samimaatta.fi Sami Määttä The Stop Killing Games directive 2025-07-03T00:00:00Z https://samimaatta.fi/en/the-stop-killing-games-directive/ <p>Now that <a href="https://www.stopkillinggames.com/">Stop Killing Games the petition has gotten a million signatures</a>, it will move into whatever the next phase of these petitions is in the EU. But it is certain that it will move forward.</p> <p><strong>Update 3.7.2025</strong>: It's still highly encourage to sign the petition if you haven't! Many of the signatures might be invalid, so it is good to have a solid buffer of accepted signatures.</p> <p>I don't have much knowledge or experience on how EU does directives in general, but through my work I have seen the effects of the European Accessibility Act (EAA for short), which was a directive as well - which I think the Stop Killing Games initiative will turn into as well.</p> <p>I'm mostly focusing on concerns that people and companies might have about the implementation of the initiative.</p> <h2 id="directives" tabindex="-1">Directives</h2> <p>Firstly it's important to understand that a directive merely &quot;directs&quot; the legislation a EU member state has to form and enforce. This can mean that the states have a lot of freedom when it comes to forming the legislation. Of course, for most effect the directive should be clear in what it aims to do, so that the states can form uniform legislation for the whole EU market area.</p> <p>That is also the biggest strength of these kinds of directives: They first and foremost affect the kinds of services and products the EU market accepts. These services and products must adhere to the legislation that enterst these markets - and the EU is a sizable market where companies want to be able to sell their products.</p> <h3 id="european-accessibility-act-eaa" tabindex="-1">European Accessibility Act (EAA)</h3> <p>The <a href="https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32019L0882">directive &quot;European Accessibility Act&quot; came into force on 17th of April 2019 (europa.eu)</a>. The legislation complying with the EAA came into effect 28th of June 2025. The EU member states had six years to form the legislation and means to monitor its implementation. (Spoilers: Not all member states are there yet.)</p> <p>The EAA greatly affected the industry I'm working in: Accessible publishing. It states that the EU member states have to define legislation such that the publishers have to publish accessible ebooks. This means that people with disabilities, that affect their reading of printed books, would be able to use ebooks without hindrances.</p> <p>Or as the directive defines 'persons with disabilities':</p> <blockquote> <p>&quot;-- persons who have long-term physical, mental, intellectual or sensory impairments which in interaction with various barriers may hinder their full and effective participation in society on an equal basis with others;&quot;</p> </blockquote> <p>This places a lot of responsibility on the publishers. Any ebook that enters the EU market after the 28th of June 2025 should be accessible and its accessibility information (metadata) should be visible to the consumer through whatever e-commerce platform they use to buy the ebooks.</p> <p>Might be needless to say, but this can and has scared publishers:</p> <ul> <li>What kind of know-how will they need to comply with the law?</li> <li>How do they make accessible ebooks?</li> <li>How do they provide the information of the accessibility on the ebook?</li> <li>What if the changes prove to be expensive?</li> <li>What if they are a small publisher that doesn't have the skills or the resources to comply with the law?</li> <li>What if the ebook they make isn't possible to make accessible? This might be a result of a highly experimental book and reading experience.</li> </ul> <h2 id="exceptions" tabindex="-1">Exceptions</h2> <p>The concerns I mentioned at the beginning are partly dealt with the exceptions that the Stop Killing Games (later SKG) directive would maybe (most likely, probably) have.</p> <p>Note that this is only from my experience with the EAA and what it is about. I think it's likely that similar 'general exceptions' will make their way into the SKG directive. Also depending on the game publishing lobbying, there could more or different kinds of exceptions. Road to the actual directive will be long.</p> <p>Let's get into some of the exceptions present in the EAA.</p> <h3 id="disproportional-burden" tabindex="-1">Disproportional burden</h3> <p>Something that might be said about games:</p> <blockquote> <p>&quot;We don't have the resources to have our games be playable after our own support.&quot;</p> </blockquote> <p>The EAA directly talks about this kind of situation and gives way for the publishers to claim &quot;disproportional burden&quot;:</p> <blockquote> <p>&quot;For reasons of proportionality, accessibility requirements should only apply to the extent that they do not impose a <strong>disproportionate burden on the economic operator</strong> concerned, --&quot;</p> </blockquote> <p>The reasons to claim disproportional burden would be varied, and in the book publishing space, it always requires an explanation to a governing body.</p> <h3 id="fundamental-alteration" tabindex="-1">Fundamental alteration</h3> <p>This is something I have seen propped up as a short coming of the Stop Killing Games initiative:</p> <blockquote> <p>&quot;What about games that wouldn't have a realistic possibility to provide end-of-life plans? This will limit the kinds of games people and companies make!&quot;</p> </blockquote> <p>This is something that a publisher might say:</p> <blockquote> <p>&quot;Our ebook is an experience that can't be made into an accessible ebook. What about now?&quot;</p> </blockquote> <p>This is handled by the clause on &quot;fundamental alteration&quot;:</p> <blockquote> <p>&quot;For reasons of proportionality, accessibility requirements should only apply to the extent that -- that they do not require a significant change in the products and services which would result in their <strong>fundamental alteration</strong> in the light of this Directive.&quot;</p> </blockquote> <p>This might mean that the game experience would be somehow fundamentally altered, because of making it possible to keep going by the community or some other party, that it would not be same experience anymore. It is difficult to say what kind of situation would qualify as a &quot;fundamental alteration&quot; - and I don't know how applicable this particular clause would be for games.</p> <h3 id="limited-resources-of-independent-game-developers" tabindex="-1">Limited resources of independent game developers</h3> <p>Independent game developers (later &quot;indie developers&quot;) work with limited resources when it comes to money and people. It might be likely that some obligations of the SKG directive could prove too expensive for indie developers to implement.</p> <p>In the EAA, exceptions are made for microenterprises. A microenterprise doesn't need to comply with the accessibility requirements. A microenterprise is defined as</p> <blockquote> <p>&quot;-- an enterprise which employs fewer than 10 persons and which has an annual turnover not exceeding EUR 2 million or an annual balance sheet total not exceeding EUR 2 million;&quot;</p> </blockquote> <p>I believe many indie developers would fit this description and be exempted from the responsibilities. Although it is highly encouraged that every actor that wants to enter the EU markets should comply with the directive and its respective legislation. It might be that game distributors (for example Steam) would want to only sell games that adhere to the directive's legislation, so they would require all actors to publish these kinds of games.</p> <p>That is, if the distributors are part of the directive.</p> <h3 id="eaa-s-shortcoming-the-backlist" tabindex="-1">EAA's shortcoming: the backlist</h3> <p>One of EAA' shortcomings is the backlist of ebooks. These are the ebooks that already exist and not accessible. They continue being in the EU market and the directive didn't specify what should be done about the existing ebooks.</p> <p>This has led to varying interpretations of the directive and implementations of the legislation:</p> <blockquote> <p>&quot;For example: <a href="https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000047984432">France have allowed for a 5-year grace period</a>. Countries such as <a href="https://www.regeringen.se/rattsliga-dokument/statens-offentliga-utredningar/2021/05/sou-202144/">Sweden opted to exclude backlist titles</a> from their legislation, however, <a href="https://www.regeringen.se/rattsliga-dokument/proposition/2022/12/prop.-20222342">more recent Swedish legislation</a> appears to suggest the excluded content is web-based PDF documents and may not encompass all backlist ebooks. Other regions such as <a href="https://julkaisekaikille.fi/saavutettava-e-kirja/vaatimukset-laissa/">Finland</a> and <a href="https://www.sik.dk/erhverv/produkter/tilgaengelighed-produkter-og-tjenester-0/bogbranchen">Denmark</a> believe that the Directive applies equally to existing and newly published titles and are implementing legislation and issuing guidance to support that approach.&quot;</p> <cite> <p>Source: <a href="https://inclusivepublishing.org/blog/eaa-backlist-confusion-looking-at-regional-differences/">EAA Backlist Confusion – Looking at Regional Differences (Inclusive Publishing)</a></p> </cite> </blockquote> <p>Would the existing games need to retrofitted to comply with the SKG directive? Short answer: No. It is specifically stated in the <a href="https://www.stopkillinggames.com/faq">SKG initiative's FAQ</a> that is not the aim of the initiative:</p> <blockquote> <p>&quot;For existing video games, it's possible that some being sold cannot have an &quot;end of life&quot; plan as they were created with necessary software that the publisher doesn't have permission to redistribute. Games like these would need to be either retired or grandfathered in before new law went into effect. <strong>For the European Citizens' Initiative in particular, even if passed, its effects would not be retroactive.</strong> So while it may not be possible to prevent some existing games from being destroyed, if the law were to change, future games could be designed with &quot;end of life&quot; plans and stop this trend.&quot;</p> </blockquote> <p>I believe similar kind of confusion will be averted when the directive wouldn't be retroactive and there wouldn't be a &quot;backlist&quot; of games.</p> <h2 id="bonus-digital-rights-management" tabindex="-1">Bonus: Digital Rights Management?</h2> <p>The EAA actually enforces one clause about the digital rights management (&quot;DRM&quot;). Usually this is to ensure that a buyer of an ebook won't be able to distribute the ebook freely to others.</p> <p>Unfortunately DRMs tend to negatively affect the reading experience and potentially block an accessible reading experience. That is why there is the following clause on ebook:</p> <blockquote> <p>&quot;(vi) ensuring that digital rights management measures do not block accessibility features.&quot;</p> </blockquote> <p>Might the SKG directive be a way to affect invasive DRMs in games? There are plenty of examples of DRM software requiring</p> <ul> <li>root access to your computer</li> <li>slowing or blocking your gaming.</li> </ul> <p><a href="https://www.gog.com/blog/what-exactly-is-drm-in-video-games-and-why-should-you-care/">Read GOG's piece on DRM if you want to know more</a>.</p> Fixing slow download speeds on Windows 11 2025-03-16T00:00:00Z https://samimaatta.fi/en/fixing-slow-download-speeds-on-windows-11/ <p>I had noticed slow download speeds especially when downloading games through Steam or GOG for example. This post was prompted by trying to download &quot;Split Fiction&quot; through the EA App.</p> <p>Solution was found from <a href="https://www.thewindowsclub.com/window-auto-tuning-in-windows-10">Window Auto-Tuning in Windows 11/10; Should you disable it or not?</a>, (<a href="https://archive.ph/l96aN">Archive link</a>). Next I have written it here as well.</p> <h2 id="solution" tabindex="-1">Solution</h2> <p>A setting called &quot;Receive Window Auto-Tuning Level&quot; may be disabled by default. Here is how to check if it is disabled:</p> <ol> <li>Open command prompt as an administrator and type <code>netsh interface tcp show global</code>.</li> <li>If &quot;Receive Window Auto-Tuning Level&quot; is set to <code>disabled</code>, then use command <code>netsh int tcp set global autotuninglevel=normal</code>.</li> <li>Restart your program of choice and restart the download.</li> </ol> <p>This worked for me. Hopefully it works for you!</p> Creating a custom Slugify filter in Eleventy 2025-01-12T00:00:00Z https://samimaatta.fi/en/creating-a-custom-slugify-filter-in-eleventy/ <p>In the table you can see how Eleventy transforms some key letters in Finnish to slugs with Slugify.</p> <div role="region" class="table-wrapper" tabindex="0"> <table> <thead> <tr> <th>Letter</th> <th>Default</th> <th>Custom</th> </tr> </thead> <tbody> <tr> <td>ä</td> <td>ae</td> <td>a</td> </tr> <tr> <td>å</td> <td>(I actually don't know this one)</td> <td>a</td> </tr> <tr> <td>ö</td> <td>oe</td> <td>o</td> </tr> </tbody> </table> </div> <p>To achieve this custom transformation, I use <code>customReplacements</code> property in Slugify. Here is the code in my Eleventy config file:</p> <pre class="language-js"><code class="language-js">eleventyConfig<span class="token punctuation">.</span><span class="token function">addFilter</span><span class="token punctuation">(</span><span class="token string">"nordicSlugify"</span><span class="token punctuation">,</span> <span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token parameter">string</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><br> <span class="token keyword">return</span> eleventyConfig<span class="token punctuation">.</span><span class="token function">getFilter</span><span class="token punctuation">(</span><span class="token string">"slugify"</span><span class="token punctuation">)</span><span class="token punctuation">(</span>string<span class="token punctuation">,</span> <span class="token punctuation">{</span><br> <span class="token literal-property property">customReplacements</span><span class="token operator">:</span> <span class="token punctuation">[</span><br> <span class="token punctuation">[</span><span class="token string">"ä"</span><span class="token punctuation">,</span> <span class="token string">"a"</span><span class="token punctuation">]</span><span class="token punctuation">,</span><br> <span class="token punctuation">[</span><span class="token string">"å"</span><span class="token punctuation">,</span> <span class="token string">"a"</span><span class="token punctuation">]</span><span class="token punctuation">,</span><br> <span class="token punctuation">[</span><span class="token string">"ö"</span><span class="token punctuation">,</span> <span class="token string">"o"</span><span class="token punctuation">]</span><span class="token punctuation">,</span><br> <span class="token punctuation">]</span><span class="token punctuation">,</span><br> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> <p>Then I use the custom filter like so: <code>{{ title | nordicSlugify}}</code>. This might be in the front matter of a page.</p> <h2 id="relevant-links" tabindex="-1">Relevant links</h2> <ul> <li><a href="https://www.11ty.dev/docs/filters/">Eleventy documentation on filters</a>.</li> <li><a href="https://www.npmjs.com/package/@sindresorhus/slugify#customreplacements">Slugify's documentation on customReplacements</a>. The filter is based on @sindresorhus's work.</li> </ul> <h2 id="backstory-for-my-problems-and-this-post" tabindex="-1">Backstory for my problems and this post</h2> <p>I upgraded a site from Eleventy 2.0 to Eleventy 3.0. <a href="https://www.11ty.dev/docs/plugins/upgrade-help/">The upgrade helper</a> is handy, so use it. For a relative novice like me the docs can be quite confusing and the helper not that helpful.</p> <p>I think my problem stemmed from the fact that Slugify became a bundled filter with Eleventy, so my previous configuration for using it didn't work well together with Netlify's deployment.</p> <p>Or then I have something messed up with my configuration either on Eleventy's side or Netlify's side. I don't know. Now it seems to be working!</p> Lukemisen muoto ei ole yhdentekevä, ja muita väärinkäsityksiä 2024-09-16T00:00:00Z https://samimaatta.fi/kirjoitukset/lukemisen-muoto-ei-ole-yhdentekeva-ja-muita-vaarinkasityksia/ <p>Tämä on osa laajempaa keskustelua siitä, että &quot;onko digitaalisuus mennyt liian pitkälle&quot; ja &quot;e-kirjasta lukeminen ei ole sama asia kuin painetusta kirjasta lukeminen&quot;. En varsinaisesti ota kantaa näihin. Kiinnitän huomioni siihen, että yleisessä keskustelussa harvoin vaikutetaan ymmärtävän, mikä digitaalinen kirja on.</p> <p>Helsingin sanomien mielipidekirjoituksessa <a href="https://www.hs.fi/mielipide/art-2000010693208.html">Lukemisen muoto ei ole yhdentekevä</a> esitettiin useampi käsitys siitä, mitä lukeminen muusta kuin painetusta kirjasta on.</p> <p>Kirjoittaja kritisoi sitä, että aiempi kolumni aiheesta väitti digitaalisen kirjan ja painetun kirjan lukemisen olevan sama asia.</p> <blockquote> <p>&quot;Hän esitti [kolumnissa], että tärkeintä on lukeminen, ei sen formaatti. Ajattelen toisin kuin Mäkinen.&quot;</p> </blockquote> <p>Puhun digitaalisesta kirjasta ja e-kirjasta ristiin tässä tekstissä.</p> <h2 id="aeani-ja-e-kirja-ovat-erilaisia-kokemuksia" tabindex="-1">Ääni- ja e-kirja ovat erilaisia kokemuksia</h2> <blockquote> <p>&quot;Esimerkiksi äänikirjan kuunteleminen toisen ihmisen tulkitsemana on aivan erilainen kokemus kuin kirjan lukeminen. Myös kirjan lukeminen paperilta on erilaista verrattuna digikirjan lukemiseen ruudulta.&quot;</p> </blockquote> <p>En ole eri mieltä. Ne ovat erilaisia <strong>kokemuksia</strong> - erityisesti äänikirjan kuuntelu. Tämä ei ole argumentti sen puolesta, että ne olisivat jotenkin huonompia tapoja lukea ja kokea kirjallisuutta.</p> <p>E-kirjan lukeminen lukulaitteelta on todella lähellä painetun kirjan lukemista. Toki fiilis on erilainen, koska formaattikin on erilainen, mutta tämäkään ei ole kummoinen argumentti puolin tai toisin.</p> <p>Kirjoituksen alussa ei siis oikein käy ilmi, miksi kirjoittaja ei pidä digitaalisia kirjoja hyvänä lukemisen muotona.</p> <h2 id="e-kirjaa-ei-voi-omistaa" tabindex="-1">E-kirjaa ei voi omistaa</h2> <blockquote> <p>&quot;Digitaalinen aineisto voi myös koska tahansa muuttua, tai jopa kadota, mikäli kirjailija vetää teoksensa pois palvelusta.&quot;</p> </blockquote> <p>Asia esitetään ikään kuin tämä olisi erityisesti e-kirjojen ongelma. Kuten painetun kirjan, niin e-kirjankin voi ostaa omaksi. Painetun kirjan painaminen saatetaan myös lopettaa, joten tekeekö sekin painetusta kirjasta huonomman?</p> <p>Ennemmin pitäisi kritisoida nykyisiä jatkuvia tilausmalleja, joissa e-kirja vuokrataan omaksi, eikä osteta. Tähän kirjoittaja ottaakin toki kantaa myöhemmässä kohdassa.</p> <p>Nyt myös valtakunnallisesta e-kirjastosta voi lainata e-kirjoja.</p> <h2 id="e-kirjan-lukemisesta-on-helpompi-hairahtua" tabindex="-1">E-kirjan lukemisesta on helpompi hairahtua</h2> <blockquote> <p>&quot;Digitaaliset alustat houkuttelevat halvalla sisällöllään, mutta jos samalta laitteelta löytyy myös Netflix, Youtube ja Tiktok, mitä sovellusta avataan todennäköisimmin?&quot;</p> </blockquote> <p>Voin hyvin kuvitella, että tämä on totta. Jos käyttää e-kirjojen lukemiseen tarkoitettua lukulaitetta, niin riski on pienempi, koska yleensä nämä on tarkoitettu pelkästään e-kirjan lukemiseen.</p> <p>En kuitenkaan ole varma, että onko käytetyn laitteen tai esineen estovaikutus niin suuri, etteikö käsi hamuaisi silti älylaitteen helpommin saatavilla olevaa palvelua.</p> <p>Lopulta: Miksei tätä voi nähdä myös hyvänä asiana? Jos E-kirja on Netflix-painikkeen vieressa, niin ehkä jollain kertaa se onkin se kirja, joka voittaa.</p> <h2 id="aeani-tai-e-kirjan-tekeminen-ei-vaadi-vaivannakoa" tabindex="-1">Ääni- tai e-kirjan tekeminen ei vaadi vaivannäköä</h2> <blockquote> <p>&quot;Painettu kirja on työläs tehdä ja vaatii vaivannäköä, mutta se on myös sen arvoista.&quot;</p> </blockquote> <p>Varsinkin, kun kirjaa tehdään painettu kirja edellä, niin e-kirjan laatu voi kärsiä. Tämä johtuu osittain siitä, että e-kirja nähdään sivutuotteena, joka tulee painetun kirjan ohella. Ne monesti tehdään jollain tavalla automatisoidusti, eikä siihen varata kunnollisia resursseja. Lopputulos on siksi huono.</p> <p>Vuodatan tuskan kyyneleen jokaiselle, joka on joutunut ostamaan tai lainaamaan e-kirjan ja on saanut vastineeksi PDF-tiedoston. Sitä ei voi minusta pitää e-kirjana (vaikka lain puolesta pidetäänkin). Jos ostaa e-kirjaa, niin kannattaa vähintään selvittää, että onko se EPUB-tiedosto. Nämä ovat niitä <strong>oikeita</strong> e-kirjoja. (Nekin on tosin voitu tehdä huonosti.)</p> <p>Hyvän ja saavutettavan e-kirjan tai äänikirjan teko todellakin vaatii vaivannäköä. Ehkä kirjoitan tästä oman julkaisun, jos pelkkä toteaminen tuntuu väistöliikkeeltä.</p> <h2 id="lukeminen-on-parasta-painetusta-kirjasta" tabindex="-1">Lukeminen on parasta painetusta kirjasta</h2> <p>Minusta ei. Elämme ajassa, jossa kirjoja ylipäänsä luetaan vähemmän. Minusta sillä ei ole väliä, missä muodossa kirjallisuus ilmenee, jos se tuo enemmän ihmisiä sen äärelle.</p> <p>Kaikilla ei myöskään ole mahdollista lukea painettua kirjaa. Jollakulla voi olla jokin vamma, joka estää painetun kirjan näkemisen tai pitelemisen käsissä. Tämä on julkisessa keskustelussa ehkä marginaalinen syy, eikä sitä tuoda juuri ikinä esille.</p> <h2 id="mika-e-kirjassa-toimii-paremmin-kuin-painetussa-kirjassa" tabindex="-1">Mikä e-kirjassa toimii paremmin kuin painetussa kirjassa?</h2> <p>Koska e-kirjat oman kokemukseni mukaan sivuutetaan liian helposti, niin nostan esille joitain niiden ominaisuuksia, joita pidän siis oikeasti parempina kuin painetussa kirjassa. Ei missään erityisessä järjestyksessä.</p> <p>E-kirjat voivat olla saavutettavia teknisillä apuvälineillä suoraan toisin kuin painetut kirjat. Esimerkiksi moni sokko käyttää ruudunlukijaa tietokoneella, jota ei voi käyttää painetun kirjan kanssa.</p> <p>E-kirjojen ulkoasussa voi muuttaa</p> <ul> <li>tekstin kokoa</li> <li>tekstin asettelua</li> <li>tekstin välistystä</li> <li>teemaa, monessa lukuohjelmassa on teemoja, kuten tumma, seepia tai suuri kontrasti</li> <li>tekstin kirjasinta (fonttia).</li> </ul> <p>Nämä liittyvät käytettyyn lukulaitteeseen:</p> <ul> <li>lukulaite on kevyempi kuin samansisältöinen suuri kirja (ja kirjat eivät myöskään vie lisää hyllyssä)</li> <li>lukulaitteiden taustavalon avulla voi lukea hämärässä tai pimeässä.</li> </ul> <h2 id="mita-huonoja-puolia-e-kirjassa-on-verrattuna-painettuun-kirjaan" tabindex="-1">Mitä huonoja puolia e-kirjassa on verrattuna painettuun kirjaan?</h2> <p>No, ehkä reiluuden nimissä mietin myös huonoja puolia. Ei erityisessä järjestyksessä:</p> <p>Jos e-kirja onkin PDF-tiedosto, niin painettu kirja on paljon parempi. PDF-tiedoston ulkoasua ei voi muuttaa yllä olevien keinojen avulla.</p> <p>Tämä on omakohtainen kokemus, mutta painettuja kirjoja on helpompi jättää kesken. Eli minulle keskenjääneen e-kirjan hahmottaminen on hankalampaa, koska ei ole fyysistä kirjapinoa, jossa keskeneräiset kirjat (kyllä, monikossa) olisivat.</p> <p>Yleisimpiä argumentteja, joita näen painetun kirjan mielekkyydestä e-kirjoihin verrattuna: painetusta kirjasta saa selkeämmän kuvan siitä, missä kohtaa kirjaa on. Ei se kyllä ole ihan sama asia aavistella kirjan loppua, kun ei tarkalleen tiedä, milloin se on loppumassa. Tämä liittyy ennen kaikkea &quot;fiilikseen&quot;.</p> Lainasanat matematiikassamme 2024-08-30T00:00:00Z https://samimaatta.fi/kirjoitukset/lainasanat-matematiikassamme/ <p>Aivan kuten suomen kielen asiantuntija saattaa välillä kavahtaa epämääräisiä lauserakenteita tai suoranaisia kirjoitusvirheitä, niin samoin käy matematiikan alan asiantuntijoille.</p> <p>Viime aikoina silmiäni ovat rasittaneet (paremman sanan puutteessa) &quot;lainasanat&quot; tai anglismit eli englannin kielestä peräisin olevat suorat käännökset, jotka ovat suomeksi suoranaisia virheitä.</p> <p>Matemaattisessa tekstissä näitä merkintöjä saatetaan katsoa enemmän läpi sormien kavahtamatta vakiintuneiden käytäntöjen vuoksi.</p> <h2 id="prosenttiluvut" tabindex="-1">Prosenttiluvut</h2> <p>Englanninkielisessä tekstissä on tavallista kirjoittaa prosenttimerkki (%) yhteen luvun kanssa. Esimerkiksi &quot;17%&quot;. Tämä on kuitenkin suomeksi väärin.</p> <p>Oikea kirjoitusasu on jättää väli luvun ja prosenttimerkin välille &quot;17 %&quot;.</p> <p>Lisätietoa: <a href="https://kielitoimistonohjepankki.fi/ohje/prosenttimerkki/">Kielitoimiston ohjepankin artikkeli prosenttimerkistä</a>.</p> <h2 id="desimaalierotin" tabindex="-1">Desimaalierotin</h2> <p>Toinen englanninkielisestä tekstistä tuttu tapa on kirjoittaa desimaaliluvut desimaalipisteen, eikä desimaalipilkun kanssa. Esimerkiksi &quot;3.14&quot;.</p> <p>Suomenkielinen kirjoitusasu on käyttää desimaalipilkkua &quot;3,14&quot;.</p> <p>Oletan, että desimaalipisteen käyttäminen on peruja monista ohjelmistoista, jotka käyttävät desimaalipistettä desimaalipilkun sijasta. Olisi työlästä vaihtaa esitystapaa esimerkiksi tieteellisissä julkaisuissa.</p> <p>Lisätietoa: <a href="https://kielikello.fi/pisteita-ja-pilkkuja/">Kielikellon artikkeli pisteistä pilkuista</a>.</p> <h3 id="tuhaterotin" tabindex="-1">Tuhaterotin</h3> <p>Englanninkielisessä tekstissä tuhaterottimena käytetään pilkkua, joka yhdistettynä desimaalipilkkuun voi tuottaa hämmentäviä hetkiä. Esimerkiksi &quot;1,789&quot; kirjoitetaan suomeksi &quot;1 789&quot;.</p> <p>Tässä täytyy huomioida, että käytetty väli on <a href="https://fi.wikipedia.org/wiki/Sitova_v%C3%A4lily%C3%B6nti">'sitova välilyönti' (wikipedia)</a>, eikä suinkaan näppäimistöltä syntyvä välilyönnin tyhjä väli. Käytännössä tämä tarkoittaa sitä, että ruuduilla lukua ei jaeta välin kohdalta kahtia esimerkiksi rivinvaihdon takia.</p> <h2 id="miljardit-ja-biljoonat" tabindex="-1">Miljardit ja biljoonat</h2> <p>Miljardit ja biljoonat menevätkin iloisesti sekaisin aika ajoin eri paikoissa. Tämä johtuu siitä, että briteissä ja Yhdysvalloissa on käytetty niin sanottua 'lyhyttä asteikkoa' ja Suomessa (ja muuallakin maailmassa) käytetään 'pitkää asteikkoa'.</p> <p>Miljoona (pitkä asteikko) on &quot;million&quot; (lyhyt asteikko) kummassakin asteikossa eli 10<sup>6</sup>. Erot alkavat heti tämän jälkeen:</p> <ul> <li>Miljardi (pitkä asteikko) on &quot;billion&quot; (lyhyt asteikko) eli 10<sup>9</sup>.</li> <li>Biljoona (pitkä asteikko) on &quot;trillion&quot; (lyhyt asteikko) eli 10<sup>12</sup>.</li> </ul> <p>Lisätietoa: <a href="https://fi.wikipedia.org/wiki/Suurten_lukujen_nimet">Suurten lukujen nimet (wikipedia)</a>.</p> <h3 id="norjan-sijoitusrahasto" tabindex="-1">Norjan sijoitusrahasto</h3> <p>Erityisen hämmentäväksi tämä menee, kun nämä kaksi maailmaa kohtaavat. Innoitukseni tähän tekstiin tuli oikeastaan, kun näin Norjan rahastoja koskevan videon, jonka kommenteissa oltiin hämmentyineitä. Siellä ihmeteltiin, että oliko Norjalla nyt rahastossaan miljardeja kruunuja vai biljoonia dollareita - vai juuri toisinpäin.</p> <div class="grid col-2"> <picture><source type="image/webp" srcset="/img/h-RIOw_4Ie-1080.webp 1080w"><img loading="lazy" decoding="async" src="/img/h-RIOw_4Ie-1080.jpeg" alt="Kuvakaappaus viivakaaviosta, jossa rahaston arvo on noussut huimasti. Kaaviossa lukee, että vuonna 2024 sen arvo on 17,745 billion kroner." width="1080" height="1241"></picture> <picture><source type="image/webp" srcset="/img/nNhsUa8Ll9-1080.webp 1080w"><img loading="lazy" decoding="async" src="/img/nNhsUa8Ll9-1080.jpeg" alt="Sama kaavio kuin edellä, mutta dollareissa. Kaaviossa lukee, että vuonna 2024 sen arvo on 1,667 billion dollar." width="1080" height="1250"></picture> </div> <p>Kuvien lähde: <a href="https://www.nbim.no/">Norges Bank Investment Management (nbim.no)</a></p> <p>No, niin. Kaavioissa on parikin haastavaa asiaa.</p> <ol> <li>Englanninkielisyys kummassakin kaaviossa.</li> <li>Valuuttamuunnos kruunuista dollareihin.</li> </ol> <p>Käännettynä suomeksi rahaston arvo on siis</p> <ul> <li>Norjan kruunuissa 17 745 miljardia</li> <li>dollareissa 1 667 miljardia.</li> </ul> <h2 id="luvut-ja-numerot" tabindex="-1">Luvut ja numerot</h2> <p>Suomeksi luku koostuu yksittäisistä numeroista. Englanninkielisessä tekstissä luku on &quot;number&quot; ja numero on &quot;digit&quot;.</p> <p>On siis sinänsä ymmärrettävää, että nämä sanat menevät sekaisin.</p> <h2 id="yksikot" tabindex="-1">Yksiköt</h2> <p>Luulen, että seuraava on vain yleinen kirjoitusvirhe, eikä niinkään lainattu mistään. Yksikön kirjoittaminen ilman väliä lukuun. Esimerkiksi &quot;6km&quot;, kun pitäisi kirjoittaa &quot;6 km&quot;.</p> <p>Yhteenkirjoitettua kirjoitusasua ei ole siis käytössä edes englanninkielisessä tekstissä.</p> <p>Poikkeuksena tähän ovat (ainakin) prosenttiluvut ja valuutat. Englanninkielisessä tekstissä kirjoitettaisiin &quot;15£&quot; tai &quot;42$&quot;. Suomeksi kirjoitetaan &quot;16 €&quot; tai &quot;54 $&quot;.</p> <p>Lisätietoa: <a href="https://kielikello.fi/euron-tunnus-numeron-jaljessa/">Kielikellon artikkeli valuuttojen kirjoittamisesta</a>.</p> <h2 id="ainutlaatuisuuksia-suomen-kielessa" tabindex="-1">Ainutlaatuisuuksia suomen kielessä</h2> <p>Nämä eivät ole varsinaisesti enää tyypillistä kielioppia, vaan enemmänkin kyse on siitä, miten matematiikassakin käytetyt merkinnät eivät ole yhteisiä kaikilla kielillä.</p> <h3 id="laventaminen-ja-supistaminen" tabindex="-1">Laventaminen ja supistaminen</h3> <p>Murtolukujen laventamista ja supistamista ei ole samalla tavalla englannin kielessä, eikä sille ole siellä omaa merkintääkään.</p> <p>Laventaminen: <math> <mrow> <msubsup> <mrow></mrow> <mrow></mrow> <mrow><mn>3</mn><mi>)</mi></mrow> </msubsup> <mfrac><mn>2</mn><mn>3</mn></mfrac> </mrow><mtext>.</mtext></math></p> <p>Supistaminen: <math> <msup> <mfrac><mn>10</mn><mn>15</mn></mfrac> <mrow><mi>(</mi><mn>5</mn></mrow> </msup><mtext>.</mtext></math></p> <p>Loppujen lopuksi näiden merkintöjen käyttö on vain apuväline oman ajattelun näyttämisessä. Kun periaatteen ymmärtää, niin niitä ei erikseen tarvitse merkitäkään.</p> <h3 id="integraalimerkinta" tabindex="-1">Integraalimerkintä</h3> <p>Suomessa käytetään integraalilaskennassa myös eräänlaista välimerkintää, joka on verrattavissa laventamisen ja supistamisen merkitsemiseen. Sitäkään ei varsinaisesti tarvitse tehdä, mutta opetteluvaiheessa se on hyödyllinen.</p> <p>Ennen sijoittamista funktio integroidaan, jotta sijoittaminen ja laskeminen olisi helpompaa: <picture><source type="image/webp" srcset="/img/OFFOK5lrel-183.webp 183w"><img loading="lazy" decoding="async" src="/img/OFFOK5lrel-183.jpeg" alt="Kuvakaappus kaksirivisestä integraalilaskusta. Toisessa vaiheessa integraalimerkki on korvattu suurella kenoviivalla, jolla on ala- ja yläraja." width="183" height="102"></picture></p> <p>Sille on myös vastine englanninkielisessä tekstissä:</p> <math> <mrow> <mo>=</mo> </mrow> <mrow> <mi>π</mi> <mrow> <mo>(</mo> <mfrac> <msup> <mi>x</mi> <mn>5</mn> </msup> <mn>5</mn> </mfrac> <mo>−</mo> <mfrac> <mn>2</mn> <mn>3</mn> </mfrac> <msup> <mi>x</mi> <mn>3</mn> </msup> <mo>+</mo> <mi>x</mi> <mo>)</mo> </mrow> <msubsup> <mo>|</mo> <mrow> <mi>x</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>x</mi> <mo>=</mo> <mn>2</mn> </mrow> </msubsup> </mrow><mtext>.</mtext> </math> <h3 id="bonus-matematiikan-pistekirjoitus" tabindex="-1">Bonus: Matematiikan pistekirjoitus</h3> <p>Suomessa on oma standardi matematiikan pistekirjoitukselle. Niin on myös Ruotsissa ja Norjassa, mutta nämä eivät ole keskenään samanlaisia. Matematiikka ei siis ole pistekirjoituksena yhteistä kaikille kielille.</p> <p>Sen sijaan pistenuottikirjoitus on.</p> Arvonlisäkorotuksen matematiikasta 2024-08-22T00:00:00Z https://samimaatta.fi/kirjoitukset/arvonlisakorotuksen-matematiikasta/ <p>Nyt, kun ALV-kannan nousu tulee 24 prosentista 25,5 prosenttiin 1.9.2024 lähtien, niin kukin on varmasti saanut erilaisia viestejä yrityksiltä, kun hinnat nousevat. Monet yritykset eittämättä siirtävät arvonlisän korottamisen suoraan hintoihinsa.</p> <p>Jos jostain syystä epäilet, että yritys haluaakin samalla nostaa hintoja ylipäänsä, niin voit tarkistaa sen suhteellisen helposti.</p> <h2 id="liian-monesti-nahty-vaarinkasitys" tabindex="-1">Liian monesti nähty väärinkäsitys</h2> <p>&quot;ALV-prosentti nousee 24 prosentista 25,5 prosenttiin. Eli hinnat kasvavat 25,5-24 % = 1,5 %.&quot;</p> <p>&quot;ALVin voisi siis laskea näin: <math display="inline"><mn>1,015</mn><mo>·</mo><mn>25</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext><mo>=</mo><mn>25,375</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext><mtext>.</mtext></math>&quot;</p> <p>ALV-kantojen erotus ei ole sama asia kuin hintojen muutos tällä prosenttimäärällä.</p> <h2 id="miten-uuden-al-vin-mukaisen-hinnan-voi-laskea" tabindex="-1">Miten uuden ALVin mukaisen hinnan voi laskea?</h2> <p>Ota olemassa oleva hintasi (ALVeineen) ja kerro se kertoimella 1,012.</p> <div class="notice"> <p>Esimerkiksi puhelinliittymäsi kuukausimaksu on 24 prosentin ALVilla 25 €/kk. Saat laskettua uuden hinnan näin: <math display="inline"><mn>1,012</mn><mo>·</mo><mn>25</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext><mo>=</mo><mn>25,30</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext><mtext>.</mtext></math></p> </div> <p>Jos hinnat nousevat enemmän kuin tämän verran, niin hinnoissa on mukana jotain muutakin nostoa kuin vain ALV-kannan muutos.</p> <h2 id="miksi-tama-toimii" tabindex="-1">Miksi tämä toimii?</h2> <p>Mistä kerroin 1,012 tulee? ALVillisen hinnan korotus tulee prosenttimuutoksena olemaan noin 1,2 %.</p> <p>Joku ajattelee: &quot;Hetkinen! Eikö se siis nousekaan 1,5 prosenttia? ALV nousee 24 prosentista 25,5 prosenttiin.&quot;</p> <p>Tämä on ymmärrettävää, koska <strong>prosenttimuutos</strong> ja <strong>prosenttiyksiköiden muutos</strong> menevät monesti sekaisin.</p> <p>Jos ALV-prosentti korottuisi 1,5 prosenttia, niin uusi ALV olisi 24,36 %, koska <math display="inline"><mn>24 </mn><mspace width="0.5ex"></mspace><mtext>%</mtext><mo>·</mo><mn>1,015</mn><mo>=</mo><mn>24,36</mn><mspace width="0.5ex"></mspace><mtext>%</mtext><mtext>.</mtext></math></p> <h3 id="esimerkki" tabindex="-1">Esimerkki</h3> <p>Käytetään samaa puhelinliittymää esimerkkinä ja lasketaan, mikä hinta on uuden ALVin (25,5 prosenttia) kanssa.</p> <p>Ensin pitää selvittää, mikä on ALViton hinta. Merkitään ALVItonta hintaa muuttujalla <math><mi>x</mi><mtext>.</mtext></math></p> <div class="notice"> <p><math display="inline"><mn>1,24</mn><mo>·</mo><mi>x</mi><mo>=</mo><mn>25</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext><mtext>.</mtext></math> Jaetaan molemmat puolet kertoimella 1,24.</p> <p><math display="inline"><mi>x</mi><mo>=</mo><mfrac><mrow><mn>25</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext></mrow><mn>1,24</mn></mfrac><mo>=</mo><mn>20,1612...</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext><mo>≈</mo><mn>20,16</mn><mspace width="0.5ex"></mspace><mtext>€/kk.</mtext></math></p> </div> <p>Hinta ilman ALVia on siis noin 20,16 €/kk. Jotta saadaan laskettua se aivan tarkasti, niin käytetään mieluummin murtolukua <math><mfrac><mrow><mn>25</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext></mrow><mn>1,24</mn></mfrac></math>. Näin pyöristys ei vaikuta laskemisessa.</p> <p>Hinta uudella ALVilla:</p> <div class="notice"> <p><math><mn>1,255</mn><mo>·</mo><mfrac><mrow><mn>25</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext></mrow><mn>1,24</mn></mfrac><mo>=</mo><mn>25,3024...</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext><mo>≈</mo><mn>25,30</mn><mspace width="0.5ex"></mspace><mtext>€/kk.</mtext></math></p> </div> <p>Mistä kerroin 1,012 siis tulee? Käyttämällä peruslaskusääntöjä kertolaskun ja jakolaskun suhteen yllä olevaa yhtälöä voidaan muokata muotoon</p> <div class="notice"> <p><math><mfrac><mn>1,255</mn><mn>1,24</mn></mfrac><mo>·</mo><mrow><mn>25</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext></mrow><mo>=</mo><mn>1,012096...</mn><mo>·</mo><mrow><mn>25</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext><mo>≈</mo><mn><strong>1,012</strong></mn><mo>·</mo><mrow><mn>25</mn><mspace width="0.5ex"></mspace><mtext>€/kk.</mtext></mrow></mrow></math></p> </div> <p>Koska kerroin muodostuu vain ALV-prosenttien aiheuttamasta muutoksesta, niin sitä voi käyttää missä tahansa tapauksessa, jossa tämä ALV-muutos tapahtuu.</p> <h2 id="mita-vaarinymmarryksesta-voi-seurata" tabindex="-1">Mitä väärinymmärryksestä voi seurata?</h2> <p>ALV-muutoksesta on ollut yrittäjän näkökulmasta juttua Helsingin sanomissa ja Ylellä, joissa on ollut ihan kiinnostavaa matemaattis-journalistista otetta:</p> <blockquote class="flow"> <p>&quot;Alv-muutos herätti teknistä keskustelua; esimerkiksi taipuvatko myyntijärjestelmät desimaalilukuun 25,5? Pienyrittäjien parissa pelätään varjoon jääviä vaivihkaisia manöövereja.</p> <p>Schevelin-Repnau tulkitsee, että tavarantoimittajien uusissa hinnastoissa on lisäystä enemmän kuin puolitoista prosenttia.</p> <p>”Jengi päättää, että nyt on hyvä hetki nostaa samalla hintoja. Näinhän tämä menee”, hän sanoo ja toteaa, että silloin myös omia hintoja on nostettava.&quot;</p> <cite> <p><a href="hs.fi/talous/art-2000010616534">Verotuksen käänne voi aiheuttaa odottamattoman ketju­reaktion, sanovat huolestuneet pien­yrittäjät (hs.fi)</a></p> </cite> </blockquote> <p>On ihan totta, että nyt kannattaa olla tarkkoina hintojen nousemisen takia.</p> <blockquote class="flow"> <p>Korotus vaikuttaa hänestä lopulta paljon enemmän kuin vain 1,5 prosenttia.</p> <p>&quot;– Materiaalikulut, työpajan vuokra, telekulut, vakuutukset ja niin edelleen. Kun kaikki tämä nousee, minun pitäisi kyetä nostamaan lopputuotteen hintaa varmaan 15 prosenttia. Eihän se ole mahdollista.&quot;</p> <cite> <p><a href="https://yle.fi/a/74-20103123">Tällaisia ongelmia ALV-nousu yrityksissä aiheuttaa: pilkku voi sekoittaa ohjelmistoja, yrittäjä miettii irtisanomisia (yle.fi)</a></p> </cite> </blockquote> Pintaa pitkin matkustaminen on hankalaa ja kallista 2024-07-13T00:00:00Z https://samimaatta.fi/kirjoitukset/pintaa-pitkin-matkustaminen-on-hankalaa-ja-kallista/ <p>Intoutuneena edellisestä kirjoituksestani <a href="/kirjoitukset/pintaa-pitkin-suomesta-saksaan/">Pintaa pitkin Suomesta Saksaan</a> aloin pohtia, millaisia edellytyksiä vastaavan matkustamisen tekemiseen on erityisesti verrattuna lentämiseen ja sen helppouteen.</p> <p>Pintaa pitkin matkustamisessa täytyy huomioida paljon enemmän asioita kuin lentämisessä. Tähän voi toki sanoa, että &quot;valintoja, valintoja&quot;. Se on osittain totta.</p> <p>On olennaista kysyä, että missä olosuhteissa nämä valinnat tehdään. Lentämistä tuetaan valtioiden toimesta - ja toki julkista liikennettä -, mutta ei ole kestävää, että lentäminen on jatkuvasti houkuttelevampi vaihtoehto muille kulkutavoille. Sitä varten rakennettu infrastruktuuri on jo olemassa, ja siihen jatketaan suurien investointien tekemistä. Viimeisin investointi <a href="https://www.iltalehti.fi/kotimaa/a/61e7aaa4-98d0-416a-aab8-2e4173aadeec">Helsinki-Vantaan lentoasemalla on ollut sen pinta-alan kaksinkertaistaminen, joka on maksanut yli miljardi euroa (Iltalehti)</a>.</p> <h2 id="matkojen-jarjestaminen-pintaa-pitkin" tabindex="-1">Matkojen järjestäminen pintaa pitkin</h2> <h3 id="monimutkaisuus" tabindex="-1">Monimutkaisuus</h3> <p>Jo pelkästään matkaa suunnitellessa tuli mieleen, että &quot;onpa tämä hankalaa&quot;. Tällaisen matkan tekemiseen täytyy tutustua moneen erilaiseen liikennöitsijään:</p> <ul> <li>Tallink Silja Line Suomessa</li> <li>SJ Ruotsissa</li> <li>Deutsche Bahn Saksassa (ja tietää, että se liikennöi jo Kööpenhaminasta)</li> <li>BVG joukkoliikenne Berliinissä</li> <li>Lyypekin julkinen liikenne Saksassa</li> <li>Finnlines laivamatkoja Saksassa ja Suomessa.</li> </ul> <p>Kognitiviinen kuorma eli pelkän ajatustyön määrä on suurempi pintaa pitkin matkustamisessa. Se liittyy suunnitteluun (kuten edellä), mutta myös käytännön matkustamiseen. Matkatessa täytyy varautua</p> <ul> <li>myöhästymisiin</li> <li>kaupungissa ja asemalla liikkumiseen</li> <li>erilaisten ohjeiden, sovellusten ja nettisivujen sisäistämiseen.</li> </ul> <p>Esimerkki erikoisista huomioista, joita pitää osata tehdä: Deutsche Bahn julkaisee alennetut hintansa junamatkoista vain 60 vuorokauden päähän. Sitä myöhemmät junamatkat ovat vielä täysihintaisia. Tätä ihmetteli <a href="https://gruene.social/@jon/112755481681933802">Jon Worth Mastodonin puolella (englanniksi)</a>.</p> <h3 id="kustannukset" tabindex="-1">Kustannukset</h3> <p>Kokonaisuudessaan pintaa pitkin tekemämme matka kustansi noin 1360 euroa per henkilö. Tähän sisältyy</p> <ul> <li>Helsinki - Tukholma -laiva (132,40 euroa)</li> <li>junat (324,15 euroa)</li> <li>majoitukset (398,50 euroa)</li> <li>Travemünde - Helsinki -laiva (503,50 euroa) <ul> <li>hytin hinta (419,50 euroa)</li> <li>ruokailut (79 euroa)</li> <li>lisäksi langaton verkko (noin 15 euroa).</li> </ul> </li> </ul> <p>Oikeasti junakustannuksista voisi vähentää puolet, koska jouduimme tekemään matkan aikana hiukan muutoksia, mutta kustannus on silti suurin piirtein tätä suuruusluokkaa.</p> <p>Ainahan voi tehdä enemmän selvitystyötä, mitkä asiat oikeuttaisivat halvempien hintojen löytämiseen tai alennuslippujen ostoon mahdollisimman ajoissa.</p> <h3 id="matkojen-jarjestaminen-lentamalla" tabindex="-1">Matkojen järjestäminen lentämällä</h3> <p>On ikävää, että lentomatkustaminen on <strong>halvempaa</strong> ja <strong>kätevämpää</strong>. Pelkästään Helsinki - Berliini menopaluulento olisi noin 150 euroa plus piilokulut, joita välttämättä tulee, mutta hinnat ovat silti eri tasoilla.</p> <p></p><figure> <figcaption><a href="https://momondo.fi">Momondosta</a> haettu lento Helsingin ja Berliinin välillä.</figcaption> <picture><source type="image/webp" srcset="/img/aH9todNKvG-1176.webp 1176w"><img loading="lazy" decoding="async" src="/img/aH9todNKvG-1176.jpeg" alt="Kuvakaappaus Momondosta. 3.9. lähtö klo 18 ja saapuminen Berliiniin klo 19. Paluulento 10.9. Berliinistä klo 8:20 ja yhdellä välilaskulla Helsinkiin klo 14:45. Hinta 146 euroa." width="1176" height="233"></picture> </figure><p></p> <p>On varmasti yksinkertaisempaa järjestää ja tukea infrastruktuuria, jolla parhaimmillaan kaupungista toiseen pääsee suoralla yhteydellä eli yhdellä lennolla. Olennaista on, että investointeja julkiseen liikenteeseen pitäisi tehdä nyt, jotta se on halvempaa myöhemmin.</p> <h3 id="vertailukelpoista" tabindex="-1">Vertailukelpoista?</h3> <p>Pintaa pitkin ja lentäen matkustamista ei tietenkään voi suoraan verrata toisiinsa. Ajattelutavan pitää olla erilainen, kun kulkee pitkää matkaa junassa kuin lentäen.</p> <p>Voiko siis näitä kahta tapaa verrata täysin keskenään? Minusta ei, mutta se ei silti tarkoita etteikö pintaa pitkin matkustamisen voisi toivoa olevan yksinkertaisempaa.</p> <h2 id="ratkaisuja-pintaa-pitkin-matkustamisen-helpottamiseksi" tabindex="-1">Ratkaisuja pintaa pitkin matkustamisen helpottamiseksi</h2> <p>Tässä tulee aika estoitta erilaisia ideoita siitä, miten kestäviä kulkutapoja voisi tukea enemmän. Mielestäni EU on tässä suhteessa luonnollinen taho, joka edistäisi Euroopassa maiden välisten yhteyksien parantamista erilaisilla tuilla ja verkostoilla.</p> <p>En voi sanoa tutustuneeni juurikaan siihen, mitä on jo tekeillä (tai mitä ei ole tekeillä), joten ehdotuksiin ja kirjoitukseen kannattaa suhtautua siltäkin osin kriittisesti.</p> <p>Sen sijaan tutustu <a href="https://gruene.social/@jon">Jon Worthiin (englanniksi, Mastodon-profiili)</a>, joka on tutustunut syvällisesti rajoja ylittäviin junamatkoihin Euroopassa projektissaan <a href="https://crossborderrail.trainsforeurope.eu/about/">#CrossBorderRail (englanniksi)</a>.</p> <p>Jos kuitenkin kiinnostaa, millaisia ideoita itse voisin ajaa eteenpäin, niin lue vain.</p> <h3 id="eu-tukea-pintaa-pitkin-matkustamisen-jarjestelmiin" tabindex="-1">EU-tukea pintaa pitkin matkustamisen järjestelmiin</h3> <ul> <li>Kannustimia yhteisen järjestelmän luomiseen ja vähintään englannin kielen tukemiseen (paremman puutteessa).</li> <li>Kannustimia usean eri maksutavan mahdollistamiseksi vähintään tietyn matkaajamäärän saavuttavista kaupungeissa tai pääkaupungeissa.</li> </ul> <h3 id="eu-tukea-hintojen-alentamiseksi" tabindex="-1">EU-tukea hintojen alentamiseksi</h3> <p>Tavoite ei olisi tehdä voittoa, vaan luoda Euroopan yhteinen juna- ja laivamatkustusverkosto.</p> <h3 id="eu-tukea-yhteyksien-parantamiseen" tabindex="-1">EU-tukea yhteyksien parantamiseen</h3> <p>Lisää yhteyksiä ja mahdollisuuksia tehdä matkoja. Matkustamisen hintojen alentaminen nostaa kysyntää matkoille, joten yhteyksien määrää pitää kasvattaa.</p> <h3 id="eu-n-suositus-julkisen-liikenteen-kustannuksista" tabindex="-1">EU:n suositus julkisen liikenteen kustannuksista</h3> <p>Aivan, kuten NATO suosittaa tietyn prosenttiosuuden käyttämistä puolustusmenoihin, niin EU voisi suosittaa samaa, mutta julkisen liikenteen osalta.</p> <h3 id="katevyytta-matkustamiseen" tabindex="-1">Kätevyyttä matkustamiseen</h3> <ul> <li>Rajojen ylittämisen pitäisi olla helppoa (jota se tällä matkalla olikin). Passia ei pitäisi edellyttää vähintään niissä yhteyksissä, joissa sitä ei edellytetä lentäessäkään.</li> <li>Tunnistetaan pisteet, joissa olisi tarpeen olla standardin mukainen ohjeistus matkustajien ohjaamiseen digitaalisesti ja fyysisesti.</li> </ul> <h3 id="esteettomyytta-ja-saavutettavuutta-matkustamiseen" tabindex="-1">Esteettömyyttä ja saavutettavuutta matkustamiseen</h3> <ul> <li>Matkakeskusten ja kulkuvälineiden tulee olla esteettömiä, jotta matkustaminen on helppoa myös vammaisille.</li> <li>Digitaalisten järjestelmien ja esimerkiksi lippuautomaattien pitää olla saavutettavia ja esteettömiä.</li> </ul> <h3 id="eu-n-laajuinen-julkisen-liikenteen-lippu" tabindex="-1">EU:n laajuinen julkisen liikenteen lippu</h3> <p>Interrail-lippu, joka toimii ja toimisi myös kaupungeissa. Käsittääkseni Interrail-lippu on menettänyt tehoaan eli sillä saa nykyään vain alennuksia eri junayhtiöissä, eikä suoraan oikeutta varata lippua haluamaansa junaan. <a href="https://saaste.net/blogi/2024/interrail-vastoinkaymiset/">Saaste kirjoittaa Interrail-lipun käytöstä blogissaan korostaen sen ongelmia</a>.</p> <p>Saksassa on tällä hetkellä käytössä 49 euroa maksava kuukausilippu, jolla voi matkustaa minkä vain saksalaisen kaupungin joukkoliikenteessä. (Sen hinta on tosin nousemassa ensi vuonna.) Interrail-lipun pitäisi olla samanlainen ja oikeasti mahdollistaa joustavan junien käytön Euroopassa.</p> <h4 id="jokeri-eu-n-laajuinen-museokortti" tabindex="-1">Jokeri: EU:n laajuinen museokortti</h4> <p>Samaan syssyyn heittäisin myös EU:n laajuisen museokortin. Ostat museokortin Suomessa. Lisähinnasta voisit ostaa siihen &quot;laajennuksen&quot;, jolla avulla pääset kaikkiin EU:n alueen museoihin.</p> <h3 id="tyoelamassakin-pitaisi-kannustaa-kestavaan-lomamatkailuun" tabindex="-1">Työelämässäkin pitäisi kannustaa kestävään lomamatkailuun</h3> <p>Pintaa pitkin matkustaminen kuluttaa väistämättä enemmän aikaa ja lomalaiselle nämä päivät voivat olla arvokkaita. Kestävillä kulkutavoilla matkustavalle työntekijälle voitaisiin myöntää lisää lomapäiviä kulkutapansa mukaan.</p> <h3 id="kannustetaan-kestavaan-tyomatkailuun" tabindex="-1">Kannustetaan kestävään työmatkailuun</h3> <ul> <li>Parannetaan verkkoyhteyksiä.</li> <li>Lisätään rauhallisia alueita juniin, jotta keskittymistä vaativa työ olisi mahdollista.</li> <li>Kannustetaan työnantajan taholta rahallisesti tai muulla keinolla kestävien kulkutapojen käyttämistä, vaikka lentäminen olisi halvempaa.</li> </ul> <h3 id="lentamisen-tuet-alas" tabindex="-1">Lentämisen tuet alas</h3> <p>Lentämistä ei pitäisi tukea rahallisesti niin paljon kuin sitä tuetaan nyt.</p> <h2 id="hajanaisia-ideoita" tabindex="-1">Hajanaisia ideoita</h2> <p>Kuten huomata saattaa, niin ideoita oli laidasta laitaan. Kaikkea ei tarvitsisi varmastikaan tehdä ylhäältä alas -menetelmällä, mutta kannustimia yhtenäisempien ratkaisujen etsimiseen pitäisi olla.</p> <p>Mitä ideoita sinulla olisi?</p> Pintaa pitkin Suomesta Saksaan 2024-07-13T00:00:00Z https://samimaatta.fi/kirjoitukset/pintaa-pitkin-suomesta-saksaan/ <picture><source type="image/webp" srcset="/img/Owm05dDsva-1280.webp 1280w"><img loading="lazy" decoding="async" src="/img/Owm05dDsva-1280.jpeg" alt="Valokuva värikkäistä seinistä Kööpenhaminassa." width="1280" height="960"></picture> <p>Teimme heinäkuun alussa avopuolisoni kanssa laivoilla ja junilla matkan Suomen Helsingistä Saksan Berliiniin. Ajatus oli, että kokeillaan, miten ilman lentämistä tehtävä matkailu tuntuu.</p> <p><strong>Tärkeä huomio heti alkuun!</strong> Travemünde-Helsinki -laivaan lähtöselvityksen teossa <strong>tarvitaan passi</strong>. Ajokortti <s>tai henkilöllisyyskortti</s> ei riittänyt.</p> <p><strong>Päivitys (14.7.2024)</strong>: Olen saanut kuulla, että henkilökortti kävisi lähtöselvityksessä muilla, joten ajattelen sen siis sopivan! Passi kannattaa kuitenkin olla varalta mukana.</p> <h2 id="reitti" tabindex="-1">Reitti</h2> <p>Reitti kulki näiden kaupunkien kautta:</p> <ol> <li>Helsinki</li> <li>Tukholma</li> <li>Kööpenhamina</li> <li>Hampuri (vaihtoyhteys)</li> <li>Berliini</li> <li>Hampuri (vaihtoyhteys)</li> <li>Lyypekki (vaihtoyhteys)</li> <li>Travemünde</li> <li>Helsinki.</li> </ol> <p>Kokonaisuudessaan matka tehtiin välillä 1.-10.7.</p> <h2 id="helsinki-tukholma-laiva" tabindex="-1">Helsinki - Tukholma (laiva)</h2> <p class="notice light-accent1">Lähtö Helsingistä: maanantaina 1.7. kello 17:00.</p> <p class="notice light-accent2">Liput ostettu: <a href="https://fi.tallink.com/helsinki-tukholma">Tallink Silja Line</a>.</p> <p>Lähdimme 1.7. matkaan Helsingin Olympiaterminaalista <a href="https://fi.tallink.com/helsinki-tukholma">Tallink Silja Linellä</a>. Alunperin otettu C-hytti muutettiin A-hytiksi, kun tajusimme, että emme lopulta haluakaan matkustaa autokannen alla - ja ikkunakin olisi kiva. Muutos onnistui vielä saman päivän aikana soittamalla asiakaspalveluun.</p> <p>Laivalla oli totisesti vilinää. Ei kannata odottaa rauhallista buffetti-illallista tai -aamiaista.</p> <p class="notice light-accent1">Saapuminen Tukholmaan: tiistaina 2.7. kello 10:00.</p> <h2 id="tukholma-vajaa-kolme-tuntia" tabindex="-1">Tukholma (vajaa kolme tuntia)</h2> <p>Junamatka Kööpenhaminaan oli kello 13:21, joten meillä oli vajaa kolme tuntia aikaa tuhlattavana Tukholmassa. Käytiin hiukan kiertelemässä katuja ja kauppoja. Pysähdyttiin syömään <a href="https://www.gastcafe.se/">Gast Caféseen (englanniksi)</a> ja se oli totisesti hyvää! Kannattaa siis käydä.</p> <h2 id="tukholma-koopenhamina-juna" tabindex="-1">Tukholma - Kööpenhamina (juna)</h2> <p class="notice light-accent1">Lähtö Tukholmasta: tiistaina 2.7. kello 13:21.</p> <p class="notice light-accent2">Liput ostettu: <a href="https://www.sj.se/">SJ (ruotsiksi)</a>.</p> <p>Ostimme junaliput Kööpenhaminaan Ruotsin VR:ää vastaavasta eli <a href="https://www.sj.se/">SJ:stä (ruotsiksi)</a>. Tämä oli mukavimpia junamatoja mitä olen ikinä tehnyt. Junavaunu oli moderni ja matka sujui ongelmitta.</p> <p>Ostimme alunperin junalipun vain Kööpenhaminan lentokentälle asti, mutta samalla lipulla pääsi silti Kööpenhaminan keskustaan. Ei siis tarvinnut ostaa erillistä lippua tai nousta edes junasta!</p> <p><strong>Päivitys (13.7.2024)</strong>: Unohdinkin tästä, että meillä oli itse asiassa vaihto Lundin rautatieasemalla. Eli junamatka ei ollut suora. Saavuimme Lundiin kello 17:40 ja jatkoimme matkaa kello 17:53.</p> <p class="notice light-accent1">Saapuminen Kööpenhaminaan: tiistaina 2.7. kello 20:33.</p> <h2 id="koopenhamina-puolitoista-vuorokautta" tabindex="-1">Kööpenhamina (puolitoista vuorokautta)</h2> <p>Olimme Kööpenhaminassa tiistaista torstaihin 2.-4.7. eli pari yötä. Sinä aikana kävimme <a href="https://www.glyptoteket.com/">taidemuseo Glypotekissä</a>. Miltei itse taidetta kiinnostavampaa oli Glyptotekin arkkitehtuuri. Kannattaakin siis tsekata sen arkkitehtuurista kertova näyttely! Kai Nielsenin veistosnäyttely oli hieno, joten sillekin suositus.</p> <p>Kööpenhaminasta jäi mieleen, että kylläpä voikin olla paljon pyöriä ja pyöräilijöitä. Rautatieaseman edustalla oli polkupyöriä todella suuri määrä ja iltapäiväruuhkan aikaan ohitse sujahti useampi pyöräilijä kuin auto.</p> <h2 id="koopenhamina-hampuri-juna-hampurissa-vaihto" tabindex="-1">Kööpenhamina - Hampuri (juna, Hampurissa vaihto)</h2> <p class="notice light-accent1">Lähtö Hampuriin: torstaina 4.7. kello 9:14.</p> <p class="notice light-accent2">Liput ostettu: <a href="https://int.bahn.de/">Deutsche Bahn (englanniksi)</a>.</p> <p>Juna Kööpenhaminasta Hampuriin oli jo saksalaisen junayhtiö Deutsche Bahnan liikennöimä. Junaliput ostettiin siis <a href="https://www.bahn.de/">Deutsche Bahnan nettisivuilta (saksaksi, bahn.de)</a>. Tässä vielä <a href="https://int.bahn.de/">Englanninkieliset Deutsche Bagnan sivut (int.bahn.de)</a>.</p> <p>Deutsche Bahn on surullisen kuuluissa myöhästyvistä junistaan, joten siihen kannattaa varautua henkisesti. Kun näin käy, niin sitten saa oikeuden käyttää lippuaan vastaavassa junassa (esimerkiksi toisessa ICE-junassa). Muutoin täytyy ostaa uusi lippu. Muistaakseni matkasta voi hakea korvauksia.</p> <p>Meitä auttoi tsekata etukäteen Hampurin rautatieaseman kartta:</p> <ul> <li><a href="https://www.bahnhof.de/en/hamburg-hbf/map">Interaktiivinen Hampurin rautatieaseman ympäristön kartta (englanniksi)</a></li> <li><a href="https://www.bahnhof.de/downloads/station-plans/2514.pdf">Hampurin rautatieaseman laiturit (saksaksi, PDF)</a>.</li> </ul> <p class="notice light-accent1">Saapuminen Hampuriin: torstaina 4.7. kello 14:06. (Tosiasiassa tämä juna taisi olla myöhässä. En muista, kuinka paljon.)</p> <h2 id="hampuri-berliini-juna" tabindex="-1">Hampuri - Berliini (juna)</h2> <p class="notice light-accent1">Lähtö Berliiniin (lipussa oleva aika): torstaina 4.7. kello 14:35. (Muistaakseni juna lähti myöhässä noin kello 15.)</p> <p class="notice light-accent2">Liput ostettu: <a href="https://int.bahn.de/">Deutsche Bahn (englanniksi)</a>.</p> <p>Tässä vaiheessa ikävöimme Tukholma-Kööpenhamina -junan moderniutta. Matka sujui ihan kivasti, mutta vaunu muistutti enemmän VR:n vanhempaa vaunua kuin nykyaikaista.</p> <p class="notice light-accent1">Saapuminen Berliiniin (lipussa oleva aika): torstaina 4.7. kello 16:20. (Lähdön myöhästymisen vuoksi tämä juna oli perillä 16:50 aikoihin.)</p> <h2 id="berliini-noin-3-vuorokautta" tabindex="-1">Berliini (noin 3 vuorokautta)</h2> <p class="notice light-accent2">Liput ostettu: <a href="https://www.bvg.de/en">BVG (englanniksi)</a>.</p> <p>Vietimme Berliinissä päivät 4.-8.7.</p> <p>Koska olimme useamman päivän Berliinissä, niin tutustuimme <a href="https://www.bvg.de/en">Berliinin julkisen liikenteen nettisivuihin (englanniksi, BVG)</a> ja latasimme julkisen liikenteen sovelluksen <a href="https://play.google.com/store/apps/details?id=de.bvg.ticket&amp;hl=en_US&amp;pli=1">BVG Tickets: Bus, Train &amp; Tram (englanniksi, play.google.com)</a>. Kannattaa tutustua eri lippuvaihtoihin ja selvittää, mikä niistä olisi omaan matkaan sopivin. Päädyimme itse käyttämään vuorokausilippuja tarpeen mukaan.</p> <p>Vuorokausilippu (9,90 euroa) oli kannattava, jos teki enemmän kuin kaksi matkaa vuorokauden aikana, sillä yksi lippu maksoi 3,50 euroa. Berliinissä pärjäsi hyvin AB-vyöhykkeen lipulla.</p> <p>Kannattaa myös vakavissaan tutustua WelcomeCardiin! Se toimii julkisen liikenteen lippuna (minimissään kaksi vuorokautta) ja sillä saa alennusta joukosta eri museoita ja tapahtumia. Alla linkki lipputyyppeihin, joissa on myös WelcomeCard.</p> <p>Pari linkkiä julkisesta liikenteestä:</p> <ul> <li><a href="https://www.bvg.de/en/connections/network-maps-and-routes">Berliinin julkisen liikenteen kartta (englanniksi, BVG)</a></li> <li><a href="https://www.bvg.de/en/subscriptions-and-tickets/all-tickets">lipputyypit (englanniksi, BVG)</a> <ul> <li>Alempana sivua kohta &quot;For tourists&quot;, jossa on WelcomeCard-vaihtoehdot.</li> </ul> </li> </ul> <p>Kohokohtia Berliinistä:</p> <ul> <li><a href="https://en.darkmatter.berlin/">DARK MATTER valo- ja ääni-installaationäyttely</a>, maksullinen, liput voi ostaa etukäteen.</li> <li><a href="https://www.jmberlin.de/en">Juutalaismuseo</a>, päänäyttely maksuton.</li> <li><a href="https://www.berlin.de/mauer/en/sites/commemorative-sites/berlin-wall-memorial/">Berlin Wall Memorial</a>, maksuton (ulkoilma).</li> </ul> <h2 id="berliini-hampuri-juna-hampurissa-vaihto" tabindex="-1">Berliini - Hampuri (juna, Hampurissa vaihto)</h2> <p class="notice light-accent1">Lähtö Hampuriin: maanantaina 8.7. kello 13:06.</p> <p class="notice light-accent2">Liput ostettu: <a href="https://int.bahn.de/">Deutsche Bahn (englanniksi)</a>.</p> <p>Liput ostettu taas Deutsche Bahnalta. Berliinin rautatieasema on aika vaikuttava, koska se on monessa eri tasossa. Sieltä lähtee kaukojunia, lähijunia ja Berliinin julkisen liikenteen yhteyksiä. Kaikki tämä tarvitsee tilaa, mikä näkyy aseman suunnittelussa.</p> <p>Berliinistä lähtevässä junassa oli melkein yksinomaan 6 henkilön hyttejä ja vapaita paikkoja oli aika hankala löytää, koska emme olleet varanneet paikkaa. Ensi reissulle joka junaan voisi ottaa paikkavarauksen (joka maksaa erikseen), niin junassa olemisessa ei kulu aikaa haahuiluun tai pahimmillaan koko matka käytävällä seisomiseen.</p> <p class="notice light-accent1">Saapuminen Hampuriin: maanantaina 8.7. kello 15:12.</p> <h2 id="hampuri-lyypekki-juna" tabindex="-1">Hampuri - Lyypekki (juna)</h2> <p class="notice light-accent1">Lähtö Hampurista: maanantaina 8.7. kello 16:06.</p> <p class="notice light-accent2">Liput ostettu: <a href="https://int.bahn.de/">Deutsche Bahn (englanniksi)</a>.</p> <p>Tämä oli suhteellisen lyhyen matkan juna, ja se tuli aika täyteen. Osa matkustajista joutui seisomaan tai istumaan käytävillä.</p> <p>Alunperin olimme ostaneet junalipun Travemünden asemalle (saksaksi Travemünde bahnhof, englanniksi Travemünde station) asti, mutta luimme netistä, että sieltä ei voi kulkea kätevästi Travemünden matkustajaterminaaliin (englanniksi Travemünde terminal). Päätimme siis jäädä jo Lyypekissä pois, jotta voimme kiertää kaupunkia ja käydä syömässä.</p> <p>Laiva oli muutenkin lähdössä vasta tiistaiyön puolella kello 02:00 ja terminaaliin piti saapua kello 23 mennessä, jolloin sieltä lähti linja-autokuljetus laivaan.</p> <p class="notice light-accent1">Saapuminen Lyypekkiin: maanantaina kello 17:00.</p> <h2 id="lyypekki-travemuenden-matkustajaterminaali-linja-auto" tabindex="-1">Lyypekki - Travemünden matkustajaterminaali (linja-auto)</h2> <p class="notice light-accent1">Lähtö Lyypekistä: maanantaina 8.7. kello 19:50.</p> <p class="notice light-accent2">Matkahaku: <a href="https://www.sv-luebeck.de/en/">Lyypekin julkinen liikenne (englanniksi ja saksaksi)</a>. Lipun osto linja-autosta.</p> <p>Travemünde-Helsinki -laivayhteyttä hoitaa <a href="https://www.finnlines.com/fi/">Finnlines</a>, jonka sivuilla on tarkempaa tietoa, miten Lyypekistä pääsee Travemünden matkustajaterminaaliin ja miten terminaalista pääsee laivaan.</p> <p>Linkkejä matkaa varten:</p> <ul> <li><a href="https://www.finnlines.com/fi/reitit/helsinki-travemunde/">Finnlines (Travemünde-Helsinki -yhteys)</a>: aikataulut ja muuta tietoa matkasta. <ul> <li>Maksat erikseen hytistä, ruokailuista ja langattomasta verkosta.</li> </ul> </li> <li><a href="https://www.finnlines.com/fi/matkustajat/hyva-tietaa/satamat-ja-ajo-ohjeet/travemunde/">Travemünden sataman osoite, lähtöselvitysajat ja tietoa julkisen liikenteen yhteyksistä (Finnlines)</a>. <ul> <li>Sivulla on alempana kohta &quot;Julkisilla kulkuvälineillä&quot;, joissa on ajantasainen ohje, miten terminaalille pääsee.</li> </ul> </li> </ul> <p>Täytyy sanoa, että tämä oli reissun stressaavin osa. Kun reissua ei ollut ikinä tehnyt aiemmin, niin Travemünden satama, terminaali ja asema menivät iloisesti sekaisin omassa päässä, eikä ollut selvää, minne oikeastaan pitää mennä.</p> <p>Koko hommassa ehkä korostuu, että laivayhteys ei lopulta ole ensisijaisesti matkustajille, vaan rahtiliikenteelle. Lisäksi moni laivaa käyttävä tulee omalla autollaan, joten autottomalle matkustajalle tilanne voi olla vielä hämmentävämpi.</p> <p><strong>Huomaa!</strong> Google Maps ei osaa näyttää oikeaa yhteyttä Travemünden matkustajaterminaaliin. Kannattaa käyttää <a href="https://www.sv-luebeck.de/en/">Lyypekin alueen julkisen liikenteen nettisivuja (osittain englanniksi, osittain saksaksi)</a> sopivan linja-auton löytämiseen.</p> <p><strong>Huomaa lisäksi!</strong> Nettisivut antavat vaihtoehdon ostaa lipun, mutta lippua ei voi käyttää ellei sitä tulosta. Lipun voi onneksi ostaa linja-autosta.</p> <p>Ikävää on, että nettisivuja ei ole kokonaan käännetty englanniksi:</p> <p></p><figure> <figcaption>Kuvakaappaus sivustolta <a href="https://www.sv-luebeck.de/en/">sv-luebeck.de/en/</a>.</figcaption> <picture><source type="image/webp" srcset="/img/LboxXNlZUv-907.webp 907w"><img loading="lazy" decoding="async" src="/img/LboxXNlZUv-907.jpeg" alt="Aikatauluhaku on otsikon 'Personal timetable' alla. Tarkistin lukemisjärjestyksen. Sen alla on ensin valikko (radio-painikkeet), haku lähtöpaikalle, sitten valikko (radio-painikkeet) saapumispaikalle. Tämän jälkeen on lähtöpäivämäärä ja saapumisaika. Tämä jälkeen pudotusvalikosta voi valita perilläoloajan. Viimeisenä yhteyden etsimispainike punaisella taustalla." width="907" height="409"></picture> </figure><p></p> <p>Käännöksiä kuvakaappauksen termeille:</p> <ul> <li>&quot;Haltestelle&quot; tarkoittaa pysäkkiä, &quot;Adresse&quot; osoitetta ja &quot;Wichtiger Punkt&quot; tarkoittaa tärkeää paikkaa tai nähtävyyttä.</li> <li>&quot;Von&quot; tarkoittaa lähtöpaikkaa ja &quot;Bis&quot; tarkoittaa saapumispaikkaa.</li> <li>Päivämäärä ja kellonaika ovat aika itsestäänselvät. <ul> <li>Vaihtoehto &quot;Abfahrt&quot; tarkoittaa, että haet lähtöaikaa.</li> </ul> </li> <li>&quot;Verbindung suchen&quot; tarkoittaa &quot;etsi yhteys&quot;.</li> </ul> <p>Toimivan yhteyden löydät, kun haet lähtöä pysäkiltä &quot;ZOB/Haupbahnhof&quot; (tarkoittaa päärautatieasemaa) ja päämääränä &quot;Skandinavienkai Terminal&quot; (tarkoittaa Skandinavian 'laituria' tai satamaa ja sen terminaalia.)</p> <p><strong>Huomaa!</strong> Kaiken tämän lisäksi sivusto vaikuttaa toimivan todella huonosti, koska se jäätyy lyhyeksi aikaa, kun tekstiä alkaa kirjoittaa. Yhdellä kerralla tietokoneella koko välilehtikin pysähtyi.</p> <p>Käytä nettisivuja oikean laiturin tai pysäkin löytämiseen Lyypekissä ja hyppää kyytiin.</p> <p class="notice light-accent1">Saapuminen Travemünden matkustajaterminaaliin: maanantaina 8.7. kello 20:20.</p> <h2 id="travemuenden-matkustajaterminaali-finnlinesin-laiva-linja-auto" tabindex="-1">Travemünden matkustajaterminaali - Finnlinesin laiva (linja-auto)</h2> <p class="notice light-accent2">Liput ostettu (kuuluu laivamatkan hintaan): <a href="https://www.finnlines.com/fi/">Finnlines</a>.</p> <p>Matkustajaterminaali on linja-autopysäkin lähellä ja näytti ensivilkaisulla hotellilta. Siinä on iso kyltti &quot;Hafenhaus&quot; ja alapuolella lukee &quot;Check-in&quot;.</p> <p>Lähtöselvityksen pystyi tekemään kello 20:30 alkaen. Alussa huomautin, että lähtöselvityksessä tarvitaan passi, mikä tuntuu ihmeelliseltä, kun ollaan EU:n alueella. Lähtöselvityksestä saat</p> <ul> <li>hyttikortin</li> <li>ruokailulipun (jos maksoit ruokailuista)</li> <li>lipun langattomaan verkkoon, joka vaihdetaan laivalla PIN-koodiin (jos maksoit langattomasta verkosta).</li> </ul> <p>Lähtöselvityksen jälkeen terminaalissa oleillaan odottamassa linja-autokuljetusta laivalle. Terminaalin alakerrassa on kauppa, jossa emme kyllä käyneet, ja (oletettavasti) päivällä toimiva ravintola.</p> <p>Omia eväitä kannattaa siis olla mukana ellei ole jo syönyt aiemmin. Laivalla on myöhäisillan ruokatarjoilu, joka maksaa erikseen, vaikka olisi ostanut ruokailut (brunssi, päivällinen ja aamiainen) laivalla.</p> <p class="notice light-accent1">Lähtö matkustajaterminaalista: maanantaina 8.7. kello 23:00.</p> <h2 id="travemuende-helsinki-laiva" tabindex="-1">Travemünde - Helsinki (laiva)</h2> <p class="notice light-accent1">Lähtö Travemündestä: tiistaina 9.7. kello 02:00. (En ole varma lähdettiinkö ihan ajoissa. Olin jo unessa.)</p> <p class="notice light-accent2">Liput ostettu: <a href="https://www.finnlines.com/fi/">Finnlines</a>.</p> <p>Linja-autokuljetus ei kestä pitkään ja päätyy laivan autokannelle. Kyydistä nousun jälkeen ei ole mitään ohjeita, minne pitäisi mennä. Kuski osoittaakin meidät laivan portaikkoon, jossa portaita voi varmaan käyttää, mutta tilassa on myös hissi, jolla menemme oikealle kannelle.</p> <p>Itse laiva on kohtuullisen viihtyisä. Tekemistä ei ole paljoa, mutta sitä ei tässä vaiheessa oikein odotakaan. Laivalla voi <strong>lisämaksusta</strong> (taas!)</p> <ul> <li>käyttää kuntosalia</li> <li>käyttää salia</li> <li>käydä hieronnassa.</li> </ul> <p>Laiva on verrattain vähän aikaa maissa, joten hyttien siivousta tehdään yleensä vielä matkustajien saapuessa. Laivalla tulee erillinen kuulutus, kun tietyn kannen hytteihin pääsee.</p> <p>Kaiken kaikkiaan matka sujui tosi rauhallisesti. En edes herännyt yöllä, kun lähdimme satamasta, eikä laiva keikkunut (huomatakseni) ollenkaan. Suurimmat melut tulivat hytin ilmastoinnista - ja toisista hyteistä. Seinät olivat selkeästi aika ohuet, koska saatoin kuulla jonkun kuorsauksen tai raskaan hengityksen (tai ainakin kuvittelin kuulevani).</p> <p class="notice light-accent1">Saapuminen Helsinkiin: keskiviikkona 10.7. kello 10:00.</p> <h2 id="vuosaaren-satama-helsingin-keskusta-linja-auto-ja-metro" tabindex="-1">Vuosaaren satama - Helsingin keskusta (linja-auto ja metro)</h2> <p class="notice light-accent2">Liput ostettu: <a href="https://www.finnlines.com/fi/">Finnlines</a> (kuuluu laivamatkan hintaan) ja <a href="https://www.hsl.fi/">HSL</a>.</p> <p>Laivan saavuttua Vuosaareen laivasta on vielä autottomille matkustajille linja-autokuljetus johonkin satamarakennukseen, jossa kuljetaan tullin läpi.</p> <p>Tämä jälkeen käytetään normaalisti Helsingin joukkoliikennettä (HSL) ja mennään linja-autolla Vuosaaren metroasemalle.</p> <p>En voinut olla kiinnittämättä huomiota ulkomaalaisiin kanssamatkustajiin, joille ei ollut tarjolla juuri mitään tietoa siitä, mihin pitäisi mennä tai mitä pitäisi tehdä.</p> <h3 id="ulkomaalainen-matkustaja-kohtaa-ongelman-helsingissa-heti-kattelyssa" tabindex="-1">Ulkomaalainen matkustaja kohtaa ongelman Helsingissä heti kättelyssä</h3> <p>Meille tämä ei ollut minkäänlainen ongelma, koska olemme helsinkiläisiä ja tiedämme, miten systeemi toimii.</p> <p>Ulkomaalainen matkustaja ei tiedä, että julkisen liikenteen lippuja ei voi ostaa linja-autosta, vaan tässä kannattaa käyttää HSL-sovellusta. Tähän ei ole mitään ohjeistusta linja-autopysäkillä</p> <p>Vaihtoehto tälle on satamarakennuksen lippuautomaatti. Sen ongelma on, että sen ohi ei edes kuljeta, kun linja-autopysäkille mennään, vaan sitä täytyy etsiä rakennuksen toisesta osasta. Mekään emme huomanneet (vaikka emme etsineetkään) tätä mahdollisuutta.</p> <p>Käytännössä linja-auton kuski osoitti matkustajat lippuautomaatille ja ajoi tiehensä, jos he eivät ehtineet takaisin. Yksi perhe ehti kyytiin ennen kuin linja-auto lähti. Onneksi linja-autoja vaikutti kulkevan suhteellisen usein, mutta tämä on todella ikävä ensikosketus Helsingin julkiseen liikenteeseen.</p> <h2 id="kustannukset" tabindex="-1">Kustannukset</h2> <p>Kokonaisuudessaan matka kustansi noin 1360 euroa per henkilö. Tähän sisältyy</p> <ul> <li>Helsinki - Tukholma -laiva (132,40 euroa)</li> <li>junat (324,15 euroa)</li> <li>majoitukset (398,50 euroa)</li> <li>Travemünde - Helsinki -laiva (503,50 euroa) <ul> <li>hytin hinta (419,50 euroa)</li> <li>ruokailut (79 euroa)</li> <li>lisäksi langaton verkko (noin 15 euroa).</li> </ul> </li> </ul> <p>Oikeasti junakustannuksista voisi vähentää puolet, koska jouduimme tekemään matkan aikana hiukan muutoksia, mutta kustannus on silti suurin piirtein tätä suuruusluokkaa.</p> <p>Tämä johtaakin viimeiseen reflektioon koko matkasta ja sen käytännön asioista. Teen pohdintaa kirjotuksessa <a href="/kirjoitukset/pintaa-pitkin-matkustaminen-on-hankalaa-ja-kallista/">Pintaa pitkin matkustaminen on hankalaa ja kallista</a>.</p> <h2 id="kantamukset" tabindex="-1">Kantamukset</h2> <p>Pitkälle matkalle lähtiessä otan yleensä kaksi kantosysteemiä mukaan:</p> <ol> <li>Isompi laukku tai reppu, jossa kulkee kaikki matkalla tarvittava. Kohteessa tämä reppu jää päiväretkien ajaksi majoitukseen.</li> <li>Pienempi laukku tai reppu, jota käytän kaupungissa. Tässä on kätevä kantaa päiväretken oleelliset tavarat, kuten vesipullo, aurinkorasva ja käsidesi.</li> </ol> <h3 id="iso-reppu-gregory-border-carry-on-backpack-15-6" tabindex="-1">Iso reppu: Gregory Border Carry On Backpack 15.6&quot;</h3> <p>Avopuolisoni hankki meille <a href="https://www.belizia.fi/gregory-border-carry-on-reppu-one-size-total-black/139311-2426.html">Gregory Border Carry On -repun (belizia.fi)</a> ja olen ollut tosi tyytyväinen reppuun! Siinä on monta taskua tavaroiden järjestelyyn repun sisäpuolella ja ulkopuolella on tarpeeksi taskuja tavaroille, joita tarvitsee nopeasti tai helposti matkan aikana.</p> <p>Siinä on myös lantiovyö, joten repun kantaminen täytenäkin on suhteellisen helppoa. Aivan täydellinen tämä lantiovyö ei ole (ainakaan minulle), koska en saanut sitä aivan niin hyvin asetettua kuin halusin. Repun sivulla on myö tasku juomapullolle, joka ei ole ollut minusta kovin ilmiselvä ominaisuus monessa muussa repussa.</p> <p>Reppu on suunniteltu siten, että kaikki narut ja nauhat saa piiloon, jotta sen voi pistää helposti ruumaan.</p> <h3 id="pieni-laukku-chrome-kadet-sling" tabindex="-1">Pieni laukku: Chrome Kadet Sling</h3> <p>Alunperin hankin <a href="https://chromeindustries.com/products/kadet-slide?variant=40901435588668">Chrome Kadet Slinging (englanniksi, chromeindustries.com)</a> pyöräilyyn, kun tarvitsen vain pienen (mutta tarpeeksi ison!) laukun mukaan. Itselle tämä on ollut käyttötarkoitukseen hyvä, mutta olen huomannut, että se on suhteellisen järeä. Sinne mahtuu kätevästi 0,75 litran juomapullo kätevästi ja sen jälkeen esimerkiksi aurinkorasvapullo. Jos isoa vesipulloa ei tarvitse mukaan, niin tässä on tosi hyvin tilaa mille vain päivän aikana mukaan tarttuvalle asialle.</p> <p>Koska laukku on tarkoitettu pyöräilyyn, niin sen täytyy pysyä hyvin paikallaan selässä. Sen vuoksi siinä on rinnan päältä kulkeva hihna ja kainalon alta menevä tukihihna, joka kiinnittyy rinnan päältä kulkevaan hihnaan. Tämän tukihihnan saa irrotettua, jos haluaa.</p> <h2 id="samasta-aiheesta-muualla" tabindex="-1">Samasta aiheesta muualla</h2> <ul> <li><a href="https://hamatti.org/posts/traveling-europe-on-land-turku-to-prague/">Juha-Matti kirjoitti vuonna 2023 vastaavasta matkastaan Turusta Prahaan (englanniksi)</a>.</li> <li><a href="https://yle.fi/a/74-20099727?utm_source=social-media-share&amp;utm_medium=social&amp;utm_campaign=ylefiapp">Ylen juttu pintaa pitkin matkustamisesta (2024)</a>.</li> </ul> Tärkeimmät oppini työelämästä 2024-06-29T00:00:00Z https://samimaatta.fi/kirjoitukset/tarkeimmat-oppini-tyoelamasta/ <p>Pitäisi kirjoittaa, että oppini työelämässä <strong>tähän asti</strong>. Eihän sitä ole ehtinyt juuri ollakaan, sillä valmistumisestani on nyt kulunut vasta viisi vuotta.</p> <h2 id="jos-en-mina-niin-kuka" tabindex="-1">Jos en minä, niin kuka?</h2> <p>Muistan alussa miettineeni, että olenko paras valinta kyseiseen paikkaan, jossa olin. Mietin, että jossain tuolla on joku sopivampi henkilö tehtävään, jota tein.</p> <p>Olen tajunnut, että vaikka tällainen henkilö jossain olisi, niin hän ei ole nyt täällä. Siispä minä teen parhaani siinä tehtävässä, jossa olen, ja tavalla, joka on minulle ominaisin. Minulla on tietoja ja taitoja, joita yhdistämällä saan aikaan asioita, joita joku muu ei saisi.</p> <p>Tässä täytyy uskoa jokaisen ihmisen ainutlaatuisuuteen - myös itsensä.</p> <p>Oiva esimerkki tästä oli, että työni kautta <a href="www.celia.fi">Saavutettavuuskirjasto Celiassa</a> tiesin, että näkövammaisille opiskelijoille laaditaan omat ylioppilastutkinnon kokeet. Vuonna 2021 näissäkin kokeissa siirryttiin käyttämään samaa sähköistä koejärjestelmää kuin muissa kokeissa. Koska valmistuin matematiikan aineenopettajaksi, minulle oli tuttu Ylen ylläpitämä <a href="https://yle.fi/aihe/s/10002314">Abitreenit-sivusto</a>, jossa voi katsoa ja treenata vanhoja kokeita.</p> <p>Otin tuolloin yhteyttä Ylen Abitreenien toimitukseen ja ehdotin, että he voisivat julkaista jatkossa myös näkövammaisten kokeet - ja niin he tekivät! Lähellä sivuston ylälaitaa on nykyään linkki suoraan näihin kokeisiin.</p> <p>Olen ajatellut asiaa siten, että jos en olisi ollut tässä tehtävässä juuri silloin, niin olisi voinut olla niin, että tätä mahdollisuutta ei olisi käytetty.</p> <h2 id="valmis-joskus-on-parempi-kuin-valmis-ei-koskaan" tabindex="-1">&quot;Valmis joskus&quot; on parempi kuin &quot;valmis ei koskaan&quot;</h2> <p>Eräässä työtehtävässä ajattelin työskenteleväni tehokkaasti, mutta työtapani ei sopinut muulle tiimille. Pahimmillaan tämä olisi johtanut työn viivästymiseen tai jopa keskeytymiseen. Onnekseni asia otettiin puheeksi tiimin toimesta, joten sitä voitiin käsitellä.</p> <p>Keskustelun kautta löydettiin tapa, joka vei (minusta) suunniteltua enemmän aikaa, mutta oli parempi tapa työskennellä koko tiimille. Se paransi yhteishenkeä ja tiimityöskentelyä, mistä ajattelen olevan hyötyä työhyvinvoinnin näkökulmasta! Samalla tilaisuuden tullen pääsin osoittamaan, että kanssani kannattaa ottaa puheeksi epäkohdatkin.</p> <h2 id="opi-tunnistamaan-omien-vastuitesi-rajat" tabindex="-1">Opi tunnistamaan omien vastuitesi rajat</h2> <p>On tärkeää, että tietää, milloin jokin päätös on sellainen, jota et voi itse tehdä. Silloin asia otetaan puheeksi esihenkilön kanssa.</p> <p>Olen useammankin kerran todennut esihenkilölleni: &quot;Tässä ovat keksimäni vaihtoehdot, mutta kaipaan nyt päätöstäsi siitä, miten edetään.&quot;</p> <p>Erilaisia asioita on vaikea ratkaista, jos siihen ei ole valtuuksia. En voi mennä alueelle, jolla esihenkilöni työskentelee. On siis tärkeää, että näissä tilanteissa osaa tunnistaa työroolinsa rajat.</p> <h2 id="opi-tunnistamaan-mika-on-tarpeeksi-valmista" tabindex="-1">Opi tunnistamaan, mikä on tarpeeksi valmista</h2> <p>Tämä on asia, joka tuli jo puheeksi silloisen graduohjaajani kanssa: Milloin gradu on 90 prosenttia valmis?</p> <p>En muista, mistä luin seuraavan sitaatin, mutta puhuin siitä itse ohjaajalleni: &quot;Tiedän, että viimeisen 10 prosentin hinkkaamiseen minulta kuluisi sama aika kuin ensimmäisen 90 prosentin valmiiksi saamiseen.&quot;</p> <p>On tärkeä pohtia työtä tehdessä, että mitkä hetket ovat niitä, kun pyritään 100-prosenttiseen suoritukseen ja milloin vähempikin riittää. Tähän liittyen muistan myös opetusharjoitteluajoistani vierailevan opettajan luennolta lauseen: &quot;Tänään on ok tehdä 70-prosenttinen päivä.&quot;</p> <p>Minusta se on hyvä ohjenuora muistaa. Töitä kyllä ehtii tehdä.</p> <h2 id="tuotokseni-on-erillaan-minusta" tabindex="-1">Tuotokseni on erillään minusta</h2> <p>Tiedostan että, kun tuotan tekstiä, esimerkiksi oppikirjaan tai muistioon, niin se on erillään minusta henkilönä. Jos jokin asia on ilmaistu kankeasti, niin se ei tarkoita minun epäonnistumistani, vaan se on korjattava asia tuotoksessa.</p> <p>Lähetän työtäni kommentoitavaksi työkavereille, koska luotan heidän asiantuntijuuteensa. <strong>Toivon</strong>, että he löytävät jotain korjattavaa. Korjattavaa löytyy aina. Jos he eivät paneudu johonkin asiaan tarpeeksi korjattavaa löytääkseen, niin sekin kertoo jo, kannattaako asiaan vielä panostaa. Siksi onkin hyvä tunnistaa, milloin 90-prosenttisesti valmis riittää - se voi riittää sillä hetkellä muillekin.</p> Kirjoittajamatkani 2024-06-29T00:00:00Z https://samimaatta.fi/kirjoitukset/kirjoittajamatkani/ <p>Juha-Matti Santala kirjoitti <a href="https://hamatti.org/posts/short-history-of-my-blogging-journey/">omasta blogausmatkastaan tähän päivään asti (englanniksi)</a> ja se sai minut pohtimaan omaani. Osittain siksi, että se jäisi itselle muistiin ja osittain siksi, että se voisi kiinnostaa jotakuta toista.</p> <h2 id="vuonna-2020-linked-in" tabindex="-1">Vuonna 2020: LinkedIn</h2> <p>Taisin liittyä ja aktivoitua LinkedInissä vakavasti, kun aloitin työt vuonna 2019 valmistumisen jälkeen. Koin, että olisi tärkeää olla jonkinlainen online-presenssi, ja työminänä se voisi onnistua hyvin.</p> <h3 id="kirjoittajan-blokki" tabindex="-1">Kirjoittajan blokki</h3> <p>Olin kauhuissani ajatuksesta, että kirjoittaisin jotain ja joku lukisi sen. Minulla oli erilaisia ajatuksia erilaisista esteistä, joiden takia en halunnut kirjoittaa, mutta nyttemmin olen löytänyt niille vastaukset:</p> <ul> <li>Entä jos kukaan ei lue, mitä kirjoitan? <ul> <li><strong>Vastaus</strong>: Sitten kukaan ei ole nähnyt juttua, jonka kirjoitin ja voin julkaista sen uudestaan. Se ei myöskään saattanut kiinnostanut ketään - se on oppimisen paikka.</li> </ul> </li> <li>Entä jos joku tulee kritisoimaan, mitä olen kirjoittanut? <ul> <li><strong>Vastaus</strong>: Jos se on järkevää kritiikkiä, niin siitä otetaan opiksi. Jos se ei ole järkevää, niin se jätetään huomiotta.</li> </ul> </li> <li>Entä jos kirjoitan ihan tyhmiä? <ul> <li><strong>Vastaus</strong>: Se kuuluu prosessiin. Tason parantumisen huomaa suoraan siitä, että miten vanhemmat kirjoitukset hävettävät.</li> </ul> </li> </ul> <h3 id="mista-sitten-kirjoitin" tabindex="-1">Mistä sitten kirjoitin?</h3> <p>Jotenkin onnistuin selättämään näitä ajatuksia, sillä aloitin kirjoittamisen ja julkaisemisen. Muistan ajatelleeni, että &quot;haluan oppia kirjoittamaan&quot; LinkedInissä. Minua kiinnosti, miten minun pitäisi kirjoittaa ja mistä, että ihmiset tulisivat lukemaan tekstejäni. Lähtökohta kirjoittamiselle oli siis hyvin käytännönläheinen ja hyötyä hakeva.</p> <p>Katsomalla kiinnitettyjä julkaisujani LinkedInissä kirjoitin</p> <ul> <li>työelämästä vastavalmistuneen näkökulmasta</li> <li>siitä kerrasta, kun pääsin Euroopan avaruusjärjestön haastatteluun</li> <li>miten matematiikan opetukseen voisi yhdistää yrittäjyyskasvatuksen keinoja</li> <li>erinäisiä kirjoituksia koulun tilasta Suomessa</li> <li>mitä muita töitä opettaja voisi tehdä kuin opettaa</li> <li>näillekin sivuille kokoamista kirjoituksista koskien <a href="/aiheet/luokkaloikkarit/">luokkaloikkaa</a>.</li> </ul> <p>Sanonnan mukaan &quot;yritin heittää spagettia seinään ja katsoa, mikä tarttuu&quot;. Menneistä kirjoitusaiheistani eniten kiinnostusta ovat herättäneet opettajan muut urapolut ja luokkaloikkaamista.</p> <h2 id="twitter" tabindex="-1">Twitter</h2> <p>En ole aivan varma, milloin menin Twitteriin. Se tapahtui LinkedInin jälkeen eli veikkaisin vuotta 2021 tai 2022. Enkä oikeastaan muista, että miksi liityin mukaan. Muistelen, että se liittyi epämääräiseen tunteeseen siitä, että sitä kautta saisin näkyvyyttä... jollekin asialle.</p> <p>Kuten LinkedInissä, niin Twitterissäkin kirjoitin muoto edellä. Sisältö oli sinänsä toissijaista, mutta ajatuksena olisi ollut, että kirjoitan jostain sellaisesta, josta kukaan muu ei kirjoita. Tämän vuoksi keskityin enemmän saavutettavuuden ja joidenkin LinkedIn-tekstien kierrättämäiseen Twitterissä.</p> <h2 id="vuonna-2021-quenched" tabindex="-1">Vuonna 2021: Quenched</h2> <p>Twitter ja LinkedIn rajoittivat julkaisujen pituuksia, ja koin tarvetta kirjoittaa pitempiä tekstejä.</p> <p>LinkedInissä pystyi kirjoittamaan pitempiä &quot;artikkeleita&quot;, mutta niiden löydettävyys oli (ja on) todella huono. Jopa omien artikkelien löytäminen jälkikäteen oli hankalaa. Sen lisäksi aloin karsastamaan ajatusta siitä, että jokin yritys (LinkedInin tapuksessa Microsoft) omistaisi julkaisuni.</p> <p>Koin myös vahvempaa tarvetta luoda omannäköiseni ympäristön. Tähän sain innoitusta <a href="https://www.finna.fi/Search/Results?lookfor=show+your+work+austin+kleon&amp;type=AllFields&amp;limit=20&amp;sort=relevance%2Cid+asc">Austin Kleonin &quot;Show your work&quot; -kirjasta (Finna)</a>, jossa korostettiin oman temmellyskentän tärkeyttä.</p> <p>Suosittelen lämpimästi kirjan lukemista - etenkin, jos joku kokee ettei osaa tai tiedä mitään kiinnostavaa! Kirjassa korostetaan ajatusta, että se mikä tuntuu tavalliselta sinulle, voi olla käänteentekevää toiselle. Et tiedä sitä etukäteen ellet aseta itseäsi näytille.</p> <p>En ollut ilmeisesti valmis käyttämään omaa nimeäni nettisivuilla. Tämä ehkä johtui siitä, että halusin kirjoitukseni olevan tunnettuja ennemmin ilmiönä kuin liittyneinä henkilöön. Valitsin sivuston nimeksi &quot;Quenched&quot;, koska yksinkertaisesti tykkäsin sanasta ja <a href="https://www.youtube.com/watch?v=pjQHpD2WQL4">&quot;It will quench ya!&quot; (englanniksi, Youtube)</a>. Ajatus oli, että opin ja jaan tietojani.</p> <p>Päädyin tuolloin käyttämään Wordpressiä alustana, mutta kyllästyin siihen ja ajatukseen sen järjestelmän toiminnasta. Halusin mieluummin keskittyä puhtaaseen HTML- ja CSS-koodiin. Halusin harjoitella saavutettavan nettisivun tekemistä. Nämä yhdistettyinä toisiinsa osoitti, että minulle Wordpress oli liian kankea järjestelmä.</p> <h2 id="vuonna-2022-samimaatta-fi" tabindex="-1">Vuonna 2022: samimaatta.fi</h2> <p>Rekisteröin samimaatta.fi -domainin kesäkuussa 2022 Quenchedin jälkeen. Kehitin nettisivut <a href="https://www.11ty.dev/">Eleventyn (englanniksi)</a>, koska olin sattunut huomaamaan, kuinka sitä mainostettiin nopeana, pelkistettynä ja siinä pelattiin pääasiassa HTML- ja CSS-koodin kanssa. Markdown ja JavaScript ovat mahdollisia myös. Halusin kuitenkin päästä lähemmäs itse nettisivujen kehitystä, joten tämä sopi minulle hyvin. Siten kirjoittamisen edellytykseksi muodostui omien nettisivujen suunnittelu ja koodaaminen.</p> <h2 id="vuonna-2023-helsingin-jalankulkijat" tabindex="-1">Vuonna 2023: Helsingin jalankulkijat</h2> <p>Ylläpidän <a href="https://jalankulkijat.fi/">Helsingin jalankulkijoiden nettisivuja</a>. Olen kirjoittanut monia viikon ajatuksia, jotka ovat kolumni- tai blogityyppisiä kirjoituksia jäsenistöltä.</p> <p>Omissa kirjoituksissani pyrin monesti tuomaan esille jonkin yleisen haasteen, joka nousee esille, kun puhutaan käveltävämmästä kaupungista ja vastaan siihen tutkimukseen nojaten. Vaihtoehtoisesti kirjoitan ajattelutapojen muuttumisesta ja, että jalankulkijoiden oikeuksia tulisi edistää.</p> <p>Panostan nettisivujen kehityksessä niiden saavutettavuuteen ja myös tekstien osalta. Editoin tekstit, jotka julkaistaan sivuilla siten, että ne olisivat (mielestäni) saavutettavat. Olen erityisen ylpeä yhteenvedosta, jonka tein <a href="https://jalankulkijat.fi/ajankohtaista/kaveltava-kaupunki-rakennetaan-suunnitelma-kerrallaan/">katusuunnitelmien kommentoinnista (jalankulkijat.fi)</a>.</p> <h2 id="miksi-kirjoitan-nyt" tabindex="-1">Miksi kirjoitan nyt?</h2> <p>Yritän olla hyödyksi muille. Olen päässyt hyvin yli ajatuksesta, että kirjoittamani asiat olisivat jotenkin turhanpäiväisiä tai 'tyhmiä'.</p> <p>Olen huomannut, että kirjoittamalla löydän paremmin oman ääneni. Asiat, joita voi olla hankala sanoa vakavasti ääneen, ovat helpompia kirjoittaa.</p> <p>Yhdistystoiminnassa nautin tutkitun tiedon löytämisestä ja sen yhdistämisestä vaikutustyöhön. Jalankulkijan oikeudet tuntuvat nykyään itselle hyvin ilmiselviltä ja, että niissä olisi parantamisen varaa. Yritän siis vakuuttaa muutkin ihmiset tästä ajatuksesta.</p> <h3 id="missa-kirjoitan-nyt" tabindex="-1">Missä kirjoitan nyt?</h3> <h4 id="omat-nettisivut-nyt" tabindex="-1">Omat nettisivut nyt</h4> <p>Nettisivuni ovat varsinainen sekasoppa - ja se on minusta hyvä! Huono ehkä siltä kannalta, jos joku nimenomaan seuraisi sivujeni RSS-syötettä, jotta saa luettua tietynlaisia juttuja. No, se on oman valtakunnan sivuvaikutus.</p> <h4 id="linked-in-nyt" tabindex="-1">LinkedIn nyt</h4> <p>Huomaan nyttemmin kirjoittamiseni LinkedIniin vähentyneen. Se on edelleen tiukemmin työminän alusta, mutta olen yrittänyt kirjoittaa laajemmin saavutettavuudesta ja jalankulun edistämisestä.</p> <p>Suurin kehu, jonka olen saanut on ollut, että täytän sellaisen nurkan saavutettavuuskeskustelussa, jota kukaan muu ei täytä. Kirjoituksiani pidetään siis arvokkaina.</p> <h4 id="mastodon-nyt" tabindex="-1">Mastodon nyt</h4> <p>Lopetettuani Twitterin käytön, siirryin Mastodoniin.</p> <p>Mastodonissa kirjoitan enemmän jalankulkijoiden oikeuksiin liittyvistä asioista ja ylläpidän Helsingin jalankulkijoiden yhdistyksen Mastodon-tiliä. Haluan kuitenkin pitää Mastodonin jokseenkin rentona kanavana, enkä lähesty asioita töitteni näkökulmasta. Saatan ponnistaa joitain blogikirjoitusideoita Mastodonissa ja sitten kirjoittaa ne varsinaisiksi kirjoituksiksi tänne.</p> <p>Kirjoittelu Mastodonissa on omiaan luomaan sellaista nettiyhteisöä, jossa haluaisi olla.</p> Controllers not working in It Takes Two (PC) 2024-06-22T00:00:00Z https://samimaatta.fi/en/controllers-not-working-in-it-takes-two-pc/ <p>Solution: Close the Steam app. It messes with the controllers when opened together with the EA app.</p> Käytännön matematiikkaa: Betonin paksuus 2024-06-18T00:00:00Z https://samimaatta.fi/kirjoitukset/kaytannon-matematiikkaa-betonin-paksuus/ <p>Kaverini työskentelee alalla, jolla oli olennaista tietää betonin paksuus tietyssä kohtaa. Betoni oli valettu kulmassa, jolloin suoraan ylhäältä otettu paksuus <math><mi>x</mi></math> ei riittänyt, vaan myös pinnan kanssa kohtisuora paksuus <math><mi>y</mi></math> haluttiin tietää myös.</p> <figure><figcaption>Lähtötilanne, jossa betoni on valettu 28 prosentin kaltevuuskulmaan.</figcaption><picture><source type="image/webp" srcset="/img/mBL32fQ15q-347.webp 347w"><img loading="lazy" decoding="async" src="/img/mBL32fQ15q-347.jpeg" alt="Valokuva piirroksesta. Suunnikas, jonka alareunassa on kaltevuus, vasen sivu on x ja kohtisuora paksuus y. Vasen yläkulma on alfa." width="347" height="224"></picture></figure> <p>Mitä siis tiedetään? Mitattu paksuus <math><mi>x</mi></math> ja 28 prosentin nousu.</p> <p>Huomasin, että suunnikkaan kulmaan muodostuu suorakulmainen kolmio, jonka kulmat ovat <math><mi>α</mi></math> ja <math><mi>γ</mi></math>. Jäljelle jäänyt kulma on luonnollisesti suora kulma eli 90 asteen kulma.</p> <p>Kaltevuuskulman prosentit voi ajatella niin, että jos edetään 100 metriä, niin pinta nousee samalla matkalla 28 metriä. Koska kyseessä on suunnikas, niin tiedetään, että sen vastakkaiset sivut ovat keskenään yhdensuuntaiset. Tällöin janoja jatkamalla voidaan tutkia samankohtaisia kulmia.</p> <figure><figcaption>100 metrin eteneminen ja 28 metrin nousu. Kulmien <math><mi>&alpha;</mi></math> ja <math><mi>&beta; </mi></math> samankohtaisuus.</figcaption><picture><source type="image/webp" srcset="/img/XQIZMWiiMY-209.webp 209w"><img loading="lazy" decoding="async" src="/img/XQIZMWiiMY-209.jpeg" alt="Valokuva piirroksesta. Selitetty yllä olevassa tekstissä." width="209" height="195"></picture></figure> <p>Tästä saadaan kätevästi selvitettyä kulman <math><mi>α</mi></math> suuruus, koska se muodostuu suorakulmaisen kolmion sisään, jonka sivujen pituudet tiedetään. Trigonometriasta tunnetaan, että tangentti (merkitään <math><mo>tan</mo></math>) tarkoittaa <math><mfrac><mtext>vastainen kateetti</mtext><mtext>viereinen kateetti</mtext></mfrac></math>.</p> <p>Kulman <math><mi>α</mi></math> vastaisen kateetin pituus on 100 ja viereisen kateetin 28.</p> <figure><figcaption>Lasketaan kulman <math><mi>&alpha;</mi></math> suuruus trigonometrian avulla.</figcaption><picture><source type="image/webp" srcset="/img/7T8E1NReYM-244.webp 244w"><img loading="lazy" decoding="async" src="/img/7T8E1NReYM-244.jpeg" alt="Valokuva piirroksesta. Suunnikkaaseen muodostuu alfan ja betan kanssa samankohtaisia ja täten samansuuruisia kulmia. Alla tangetin avulla muodostettu yhtälö." width="244" height="333"></picture></figure> <p>Trigonometrian avulla saadaan aikaan alla oleva yhtälö ja se ratkaistaan:</p> <math display="block"> <mtable> <mtr> <mtd></mtd> <mtd> <mrow> <mo>tan</mo><mi>&alpha;</mi> </mrow> </mtd> <mtd> <mo>=</mo> </mtd> <mtd> <mfrac> <mn> 100 </mn> <mn> 28 </mn> </mfrac> </mtd> </mtr> <mtr> <mtd> &DoubleLeftRightArrow; </mtd> <mtd> <mi>&alpha;</mi> </mtd> <mtd> <mo>=</mo> </mtd> <mtd> <mrow><mo>arctan</mo> <mfrac> <mn> 100 </mn> <mn> 28 </mn> </mfrac> </mrow> <mtext>.</mtext> </mtd> </mtr> </mtable> </math> <figure><figcaption>Yhdistettynä alkuperäiseen tilanteeseen saadaan ratkaistava yhtälö.</figcaption><picture><source type="image/webp" srcset="/img/mBL32fQ15q-347.webp 347w"><img loading="lazy" decoding="async" src="/img/mBL32fQ15q-347.jpeg" alt="Valokuva piirroksesta. Suunnikkaan vasempaan kulmaan muodostuvassa suorakulmaisessa kolmiossa kulmaa alfa vastapäätä on sivu y ja vieressä sivu x." width="347" height="224"></picture></figure> <p>Tilanteesta muodostetaan nyt yhtälö ja ratkaistaan se:</p> <math display="block"> <mtable> <mtr> <mtd></mtd> <mtd> <mrow> <mo>sin</mo><mi>&alpha;</mi> </mrow> </mtd> <mtd> <mo>=</mo> </mtd> <mtd> <mfrac> <mi> y </mi> <mi> x </mi> </mfrac> </mtd> </mtr> <mtr> <mtd> &DoubleLeftRightArrow; </mtd> <mtd> <mi>y</mi> </mtd> <mtd> <mo>=</mo> </mtd> <mtd> <mi>x</mi> <mo>&centerdot;</mo> <mrow> <mo>sin</mo><mi>&alpha;</mi> </mrow> <mtext>.</mtext> </mtd> </mtr> </mtable> </math> <p>Yhdistetään tähän tietoon ylempi yhtälö, josta saimme kulman <math><mi>α</mi></math> lausekkeen</p> <math display="block"> <mi>y</mi> <mo>=</mo> <mi>x</mi> <mo>&centerdot;</mo> <mrow> <mo>sin</mo><mo>(</mo><mrow><mo>arctan</mo> <mfrac> <mn> 100 </mn> <mn> 28 </mn> </mfrac> </mrow> <mo>)</mo> <mo>=</mo> <mi>x</mi><mo>&InvisibleTimes;</mo> <mn>0.962...</mn> <mo>&approx;</mo> <mn>0.96</mn> <mo>&InvisibleTimes;</mo> <mi>x</mi> <mtext>.</mtext> </mrow></math> <p>Nähdään siis, että kohtisuora paksuus <math><mi>y</mi></math> on jopa 96 prosenttia suoraan ylhäältä mitatusta paksuudesta <math><mi>x</mi></math>. Jos sanottaisiin, että suoraan ylhäältä mitattu paksuus olisi 1 metri, niin kohtisuora paksuus olisi 0,96 metriä. Siis jos käyttäisi vain arvoa <math><mi>x</mi></math>, niin heittoa syntyisi 4 senttimetriä.</p> <h2 id="kaiken-kaikkiaan-kiva" tabindex="-1">Kaiken kaikkiaan kiva</h2> <p>Kun on opiskellut pitkän aikaa matematiikkaa, joka on monessa suhteessa teoreettista, niin käytännön esimerkit siitä, mitä on oppinut ovat todella kivoja. Aineenopettajanakin aika kuluu pitkälti kuviteltujen tilanteiden hahmotteluun, joista ei saa samanlaista nautintoa kuin siitä, että on todella ratkaissut jotain, mistä on konkreettista hyötyä.</p> Onko 0 parillinen vai pariton luku? 2024-05-25T00:00:00Z https://samimaatta.fi/kirjoitukset/onko-0-parillinen-vai-pariton-luku/ <p>Aika monesti sanotaan, että luvun parillisuuden voi selvittää siten, että jos luvun jakaa kahdella, eikä mitään jää yli, niin luku on parillinen.</p> <p>Esimerkiksi luvun <math><mn>8</mn></math> näkee helposti olevan parillinen, koska <math><mn>8</mn><mi>/</mi><mn>2</mn><mo>=</mo><mn>4</mn></math> eli meille ei jää ylimääräisiä osia. Sanotaan, että <strong>jako menee tasan</strong>.</p> <p>Sen voi ajatella sitäkin kautta, että jos 8 vesimelonia (koska jaettavat ovat aina jättimäisiä asioita) jaetaan kahdelle henkilölle, niin saavatko molemmat yhtä monta? Tässä tapauksessa kyllä.</p> <p>Vastaavasti luku <math><mn>5</mn></math> ei ole parillinen, koska jaettuna kahdella meille jää yksi yli <math><mn>5</mn><mi>/</mi><mn>2</mn><mo>=</mo><mn>2</mn><mtext>, jää yli </mtext><mn>1</mn></math>. Sanotaan, että <strong>jako ei mene tasan</strong>.</p> <h2 id="entas-0" tabindex="-1">Entäs 0?</h2> <p>Nollan voi jakaa luvulla 2 ja jako menee tosiaan 'tasan'. Tasan siinä mielessä, että mitään ei jää yli. Toisaalta mitään ei jäisi yli myöskään jakamalla 0 millä vain luvulla.</p> <p>Ei siis tunnu kovin tyydyttävältä vastaukselta, että 0 menee jakaessa tasan luvulla 2 ja siksi se olisi parillinen. Se voi toki jollekulle riittää, mutta nyt se ei riitä meille!</p> <h2 id="visuaalinen-selitys" tabindex="-1">Visuaalinen selitys</h2> <p>Jos piirretään lukujana, niin siitä näkee aika selkeästi, että joka toisen luvun ollessa parillinen ja joka toisen pariton, niin nolla jää kivasti parittomien lukujen väliin. Tästä voisi jo päätellä, että nolla on parillinen.</p> <p>Entä jos tämäkään selitys ei riitä?</p> <h2 id="milta-parilliset-luvut-nayttavat" tabindex="-1">Miltä parilliset luvut näyttävät?</h2> <p>Jotenkin luku 2 liittyy kaikkiin parillisiin lukuihin. Sillä jaettaessa jäljelle pitäisi jäädä 'tasan mennyt luku'. Mitä tämä tarkoittaa?</p> <p>Tällainen 'tasan mennyt luku' on kokonaisluku. Kaikkia kokonaislukuja sanotaan <strong>kokonaislukujen joukoksi</strong> ja sitä merkitään symbolilla ℤ (englanniksi &quot;<span lang="en">doublestruck z</span>&quot;, suomeksi &quot;kaksoisviiva z&quot;).</p> <p>Voidaan siis sanoa, että jos luku <math><mi>x</mi></math> jaetaan luvulla 2 ja lopputuloksena on jokin luku <math><mi>k</mi></math> siten, että se on kokonaisluku, niin luku <math><mi>x</mi></math> on parillinen.</p> <p>Matemaattisesti sen voisi esittää näin: <math display="block"><mi>x</mi><mo>/</mo><mn>2</mn><mo>=</mo><mi>k</mi><mtext>.</mtext></math></p> <p>Muistelemalla yhtälönratkaisua tämän voi vielä muokata kertomalla puolittain luvulla 2, ja saadaan</p> <p><math display="block"><mi>x</mi><mo>=</mo><mn>2</mn><mo>⁢</mo><mi>k</mi><mtext>.</mtext></math></p> <p>Erilaisia parillisia lukuja saa sijoittamalla kokonaisluvun <math><mi>k</mi></math> paikalle eri kokonaislukuja:</p> <p><math display="block"><mi>x</mi><mo>=</mo><mn>2</mn><mo>·</mo><mi>2</mi><mo>=</mo><mn>4</mn><mtext>,</mtext></math> <math display="block"><mi>x</mi><mo>=</mo><mn>2</mn><mo>·</mo><mi>5</mi><mo>=</mo><mn>10</mn><mtext>,</mtext></math> <math display="block"><mi>x</mi><mo>=</mo><mn>2</mn><mo>·</mo><mi>90</mi><mo>=</mo><mn>180</mn><mtext>.</mtext></math></p> <p>Kokeile itse pari!</p> <h2 id="milta-parittomat-luvut-sitten-nayttavat" tabindex="-1">Miltä parittomat luvut sitten näyttävät?</h2> <p>Parittomat luvut on helppo määritellä parillisiin lukuihin nojaten. Parittomien lukujen olennaisin ominaisuus on, että sellainen luku ei mene tasan jaettaessa luvulla 2.</p> <p>Yksinkertaisimmillaan tämä saadaan aikaan käyttämällä parittomalla luvulla <math><mi>y</mi></math> muotoa</p> <p><math display="block"><mi>y</mi><mo>=</mo><mn>2</mn><mo>⁢</mo><mi>k</mi><mo>+</mo><mn>1</mn><mtext>.</mtext></math></p> <p>Nyt aina, kun tällainen luku jaetaan kahdella, niin siitä jää 1 yli.</p> <p>Erilaisia parittomia lukuja:</p> <p><math display="block"><mi>y</mi><mo>=</mo><mn>2</mn><mo>·</mo><mi>2</mi><mo>+</mo><mn>1</mn><mo>=</mo><mn>5</mn><mtext>,</mtext></math> <math display="block"><mi>y</mi><mo>=</mo><mn>2</mn><mo>·</mo><mi>5</mi><mo>+</mo><mn>1</mn><mo>=</mo><mn>11</mn><mtext>,</mtext></math> <math display="block"><mi>y</mi><mo>=</mo><mn>2</mn><mo>·</mo><mi>90</mi><mo>+</mo><mn>1</mn><mo>=</mo><mn>181</mn><mtext>.</mtext></math></p> <p>Saat siis mistä vain keksimästäsi parillisesta luvusta parittoman lisäämällä siihen yhden.</p> <h2 id="no-enta-se-0" tabindex="-1">No, entä se 0?</h2> <p>Nyt voidaan tutkia, että voiko nollaa kirjoittaa kummallakaan parittoman luvun tai parittoman luvun tapaan. Tehtävänä on nyt saada joko <math><mi>y</mi><mo>=</mo><mn>2</mn><mo>⁢</mo><mi>k</mi><mo>+</mo><mn>1</mn></math> tai <math><mi>x</mi><mo>/</mo><mn>2</mn><mo>=</mo><mi>k</mi></math> nollaksi.</p> <p>Helpoimmin se ehkä tapahtuu kokeilemalla, että millä kokonaisluvun <math><mi> k</mi></math>:n arvolla saadaan jommasta kummasta muodosta luku 0.</p> <p>Vaihtoehtoja ei ole monia. Kokeillaan lukua itseään eli entä jos <math><mi>k</mi><mo>=</mo><mn>0</mn></math>.</p> <p>Nyt parittomana lukuna saataisiin</p> <p><math display="block"><mi>y</mi><mo>=</mo><mn>2</mn><mo>·</mo><mn>0</mn><mo>+</mo><mn>1</mn><mo>=</mo><mn>1<mn></mn></mn></math></p> <p>ja parillisena lukuna</p> <p><math display="block"><mi>y</mi><mo>=</mo><mn>2</mn><mo>·</mo><mn>0</mn><mo>=</mo><mn>0<mn><mtext>.</mtext></mn></mn></math></p> <p>Sieltähän se tuli! Kokeilemalla vielä eri lukuja <math><mi>k</mi></math>:n paikalle voit huomata, että nollaa ei saa muutoin ilmestymään - tai sitten voit myös tehdä yhtälön, jossa yrität ratkaista <math><mi>k</mi></math>:n arvon:</p> <p><math display="block"><mi>y</mi><mo>=</mo><mn>2</mn><mo>·</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>=</mo><mn>0<mn></mn></mn></math></p> <p>ja</p> <p><math display="block"><mi>y</mi><mo>=</mo><mn>2</mn><mo>·</mo><mi>k</mi><mo>=</mo><mn>0<mn><mtext>.</mtext></mn></mn></math></p> A custom collection to sort events with Eleventy 2024-05-09T00:00:00Z https://samimaatta.fi/en/a-custom-collection-to-sort-events-with-eleventy/ <p>I created and update the <a href="https://jalankulkijat.fi/en/">Helsinki Pedestrians' Association's website</a> and since we do events I wanted to be able to display upcoming events in the order they coming up in. This wasn't so straightforward, since Eleventy doesn't support a secondary date data, only the creation date.</p> <h2 id="objectives-for-the-custom-collection" tabindex="-1">Objectives for the custom collection</h2> <p>I figured that I have to make a custom collection, because I wanted to</p> <ul> <li>sort the event posts by the event date, not the creation date</li> <li>filter out events that have past</li> <li>generate a &quot;past event&quot; banner to past events.</li> </ul> <h2 id="front-matter-in-a-post-for-the-nunjucks-and-collection-to-work" tabindex="-1">Front matter in a post for the Nunjucks and collection to work</h2> <p>Here is the front matter data for an event post:</p> <pre class="language-yaml"><code class="language-yaml"><span class="token key atrule">tags</span><span class="token punctuation">:</span><br> <span class="token punctuation">-</span> Event<br><br><span class="token key atrule">eventDate</span><span class="token punctuation">:</span> <span class="token datetime number">2024-05-06</span><br><span class="token key atrule">publishDate</span><span class="token punctuation">:</span> <span class="token datetime number">2024-04-21</span><br><span class="token punctuation">---</span></code></pre> <p>I wanted to use the tag &quot;<strong>Event</strong>&quot; to pick up the relevant collection. Then I wanted the sorting of events to happen based on the <code>eventDate</code> data, not <code>publishDate</code>.</p> <h2 id="the-custom-collection-in-the-configuration-file" tabindex="-1">The custom collection in the configuration file</h2> <p>I delved into the Eleventy documentation, which isn't the clearest (to me). So, in addition I ran into somebody asking a sort of similar question on Eleventy GitHub.</p> <p>From there I figured an outline that I should get to work. The finished code is next.</p> <p>In the <code>.eleventy.js</code> (or equivalent configuration file):</p> <pre class="language-js"><code class="language-js">eleventyConfig<span class="token punctuation">.</span><span class="token function">addCollection</span><span class="token punctuation">(</span><span class="token string">"events"</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">collection</span><span class="token punctuation">)</span> <span class="token operator">=></span><br> collection<br> <span class="token punctuation">.</span><span class="token function">getFilteredByTag</span><span class="token punctuation">(</span><span class="token string">"Event"</span><span class="token punctuation">)</span><br> <span class="token punctuation">.</span><span class="token function">filter</span><span class="token punctuation">(</span><span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token parameter">item</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><br> <span class="token keyword">var</span> dateToday <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br> <span class="token keyword">if</span> <span class="token punctuation">(</span>item<span class="token punctuation">.</span>data<span class="token punctuation">.</span>eventDate <span class="token operator">></span> dateToday<span class="token punctuation">)</span> <span class="token punctuation">{</span><br> <span class="token keyword">return</span> item<span class="token punctuation">;</span><br> <span class="token punctuation">}</span><br> <span class="token punctuation">}</span><span class="token punctuation">)</span><br> <span class="token punctuation">.</span><span class="token function">sort</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">a<span class="token punctuation">,</span> b</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><br> <span class="token keyword">return</span> a<span class="token punctuation">.</span>data<span class="token punctuation">.</span>eventDate <span class="token operator">-</span> b<span class="token punctuation">.</span>data<span class="token punctuation">.</span>eventDate<span class="token punctuation">;</span><br> <span class="token punctuation">}</span><span class="token punctuation">)</span><br><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> <ol> <li> <p>I used the <code>eleventyConfig.addCollection()</code> function. I gave the collection name &quot;<strong>events</strong>&quot;.</p> </li> <li> <p>Next filter the collection, so that you only get the posts tagged &quot;<strong>Event</strong>&quot; with <code>.getFilteredByTag(&quot;Event&quot;)</code>.</p> </li> <li> <p>After that I make the custom filter that uses the current day's date for filtering out past events.</p> <ul> <li>The <code>Date()</code> function returns the current date in this kind of format: &quot;Thu May 09 2024 03:00:00 GMT+0300 (Eastern European summer time)&quot;. Then it gets compared to the post's <code>eventDate</code> with the if statement: <code>if (item.data.eventDate &gt; dateToday)</code>. The condition passes the upcoming event to the array.</li> </ul> </li> <li> <p>The last part <code>.sort()</code> sorts the array according the <code>eventDate</code> data rather than the default date.</p> </li> </ol> <p>Now the this filtered custom collection can be used in a template.</p> <h2 id="how-to-implement-the-custom-collection-in-nunjucks" tabindex="-1">How to implement the custom collection in Nunjucks</h2> <p>The Nunjucks snippet that produces the event list or a message with the text that there are no upcoming events:</p> <pre class="language-liquid"><code class="language-liquid"><span class="token liquid language-liquid"><span class="token delimiter punctuation">{%</span> set nextEvents <span class="token operator">=</span> collections<span class="token punctuation">.</span>events <span class="token delimiter punctuation">%}</span></span><br><br>## Upcoming events (<span class="token liquid language-liquid"><span class="token delimiter punctuation">{{</span> nextEvents<span class="token punctuation">.</span>length <span class="token delimiter punctuation">}}</span></span>)<br><br><span class="token liquid language-liquid"><span class="token delimiter punctuation">{%</span> <span class="token keyword">if</span> nextEvent<span class="token punctuation">.</span>length <span class="token operator">==</span> <span class="token number">0</span> <span class="token delimiter punctuation">%}</span></span><br><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>post-card<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><br><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>No upcoming events at this time!<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span><br><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span><br><span class="token liquid language-liquid"><span class="token delimiter punctuation">{%</span> <span class="token keyword">else</span> <span class="token delimiter punctuation">%}</span></span><br><br><span class="token liquid language-liquid"><span class="token delimiter punctuation">{%</span> <span class="token keyword">for</span> post <span class="token keyword">in</span> nextEvents <span class="token delimiter punctuation">%}</span></span><br><br><span class="token liquid language-liquid"><span class="token delimiter punctuation">{%</span> <span class="token keyword">include</span> <span class="token string">"partials/index-postCard.njk"</span> <span class="token delimiter punctuation">%}</span></span><br><br><span class="token liquid language-liquid"><span class="token delimiter punctuation">{%</span> <span class="token keyword">endfor</span> <span class="token delimiter punctuation">%}</span></span><br><span class="token liquid language-liquid"><span class="token delimiter punctuation">{%</span> <span class="token keyword">endif</span> <span class="token delimiter punctuation">%}</span></span></code></pre> <ul> <li>Using the custom collections happens right at the start with <code>{% set nextEvents = collections.events %}</code>.</li> <li><code>## Upcoming events ({{ nextEvents.length }})</code> generates a count of upcoming events.</li> </ul> <p>The rest is pretty self-explanatory use of an if statement.</p> <p>This snippet produces the filtered list of events that is sorted in a way that the next upcoming event is first and the latest is in the bottom.</p> <p><strong>Important!</strong> You have to notice that the events list gets updated only when the site is built. So, either you can set up an automatic way of doing this or just let your natural build cycle filter past events out.</p> <h2 id="updating-the-event-with-the-past-notice" tabindex="-1">Updating the event with the past notice</h2> <p>Global data for the current date to use anywhere in the files in <code>.eleventy.js</code> (or equivalent configuration file):</p> <pre class="language-js"><code class="language-js">eleventyConfig<span class="token punctuation">.</span><span class="token function">addGlobalData</span><span class="token punctuation">(</span><span class="token string">"dateToday"</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> <p>This one I have implemented in my <code>post.njk</code> layout right after the post's heading:</p> <pre class="language-liquid"><code class="language-liquid"><span class="token liquid language-liquid"><span class="token delimiter punctuation">{%</span> <span class="token keyword">if</span> eventDate <span class="token operator">&lt;</span> dateToday <span class="token delimiter punctuation">%}</span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>alert<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>strong</span><span class="token punctuation">></span></span>This is a past event<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>strong</span><span class="token punctuation">></span></span> See the upcoming events on the home page.<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span>.<br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span><br><span class="token liquid language-liquid"><span class="token delimiter punctuation">{%</span> <span class="token keyword">endif</span> <span class="token delimiter punctuation">%}</span></span></code></pre> <p><strong>Important!</strong> This one also gets updated when it gets built.</p> Eleventy Image problem with Netlify's build 2024-04-05T00:00:00Z https://samimaatta.fi/en/eleventy-image-problem-with-netlify-s-build/ <p>I host my website with <a href="https://www.netlify.com/">Netlify</a>. I use <a href="https://www.11ty.dev/">Eleventy</a> to power the thing.</p> <p>Version of Eleventy that I use: 3.0.0-alpha.5. Unrelated to this post's problem, I also had to update Netlify's Node version to use the newest version of Eleventy. That might be your problem too.</p> <h2 id="long-story-short" tabindex="-1">Long story short</h2> <p>I implemented <a href="https://www.11ty.dev/docs/plugins/image/#eleventy-transform">Eleventy Image (Eleventy Transform way)</a> and Netlify's build step started failing.</p> <p>I included <code>outputDir: &quot;public/img/&quot;</code> into my config file to get through local build step. Still Netlify's build step was failing.</p> <p><strong>Reason</strong>: I was using the wrong slashes: \ (backwards slash) for inside <code>img</code> tags in my code, so Netlify's build step failed, because of that. I changed those into forward slashes / and it started working again.</p> <p>Below is the story in longer form, if it will be helpful to somebody else.</p> <h2 id="optimizing-images" tabindex="-1">Optimizing images</h2> <p>I wanted to optimize my images to get achieve the four 100's score of the Lighthouse test - and to be kinder to slower connections that people might use.</p> <p>Eleventy provides the <a href="https://www.11ty.dev/docs/plugins/image/">Image</a> plugin to make this process automatic. It generates multiple versions of the image that you use on your site and chooses the &quot;most optimized&quot; one (I don't really know what it does, I know it helps).</p> <h2 id="using-the-image-plugin" tabindex="-1">Using the Image plugin</h2> <p>For my use cases I just wanted to have everything be automatic, so I used the <a href="https://www.11ty.dev/docs/plugins/image/#eleventy-transform">&quot;Eleventy Transform&quot; method</a>. You add the script into your config file and it almost works right away.</p> <p>I had to add <code>outputDir: &quot;public/img/&quot;</code> to my config file, because otherwise it didn't even build locally.</p> <h2 id="netlify-starts-failing-builds" tabindex="-1">Netlify starts failing builds</h2> <p>After implementing these, Netlify started failing the builds. Everything worked fine in <code>--serve</code> mode locally, so this was surprising to me.</p> <p>The error message (in essence) was this over on Netlify's dashboard:</p> <pre class="language-powershell"><code class="language-powershell">10:25:28 PM: <span class="token punctuation">[</span>11ty<span class="token punctuation">]</span> 1<span class="token punctuation">.</span> Having trouble writing to <span class="token string">"public/blog/post-1-my-day-as-a-walrus/index.html"</span> <span class="token keyword">from</span> <span class="token string">"./src/pages/blog/post-1-my-day-as-a-walrus.md"</span> <span class="token punctuation">(</span>via EleventyTemplateError<span class="token punctuation">)</span><br>10:25:28 PM: <span class="token punctuation">[</span>11ty<span class="token punctuation">]</span> 2<span class="token punctuation">.</span> Transform `eleventy<span class="token punctuation">.</span>htmlTransformer` encountered an error when transforming <span class="token punctuation">.</span><span class="token operator">/</span>src/pages/blog/post-1-my-day-as-a-walrus<span class="token punctuation">.</span>md<span class="token punctuation">.</span> <span class="token punctuation">(</span>via EleventyTransformError<span class="token punctuation">)</span><br>10:25:28 PM: <span class="token punctuation">[</span>11ty<span class="token punctuation">]</span> 3<span class="token punctuation">.</span> ENOENT: no such file or directory<span class="token punctuation">,</span> stat <span class="token string">"src/pages/blog/\images\uploads\post-1-my-day-as-a-walrus\walrus.jpg"</span> <span class="token punctuation">(</span>via Error<span class="token punctuation">)</span></code></pre> <p>The problem piece was this: <code>&quot;src/pages/blog/\images\uploads\post-1-my-day-as-a-walrus\walrus.jpg&quot;</code>.</p> <p>Netlify's build step couldn't figure out what it was supposed to do with the <code>img</code> tag. The reason for the error were the backwards slashes \, which should have been forward slashes /.</p> <p>Once I changed all the image tags that had that, the problem was solved.</p> Koskelantien ja Mäkelänkadun asemakaavassa on paljon toivomisen varaa 2024-04-03T00:00:00Z https://samimaatta.fi/kirjoitukset/koskelantien-ja-makelankadun-asemakaavassa-on-paljon-toivomisen-varaa/ <p><a href="https://kartta.hel.fi/?sukkaId=HEL%202023-015357">Aineistot</a> <a href="https://www.hel.fi/static/ksv/2023_kaava/6604_1%20_M%C3%A4kel%C3%A4nkadun%20ja%20Koskelantien%20risteys_asukastilaisuus.pdf">Asukastilaisuuden esitys</a> <a href="https://www.hel.fi/static/ksv/2023_kaava/6604_1_suunnitelmakuva.pdf">Suunnitelmakuva</a></p> <p><a href="https://www.hel.fi/static/liitteet/kaupunkiymparisto/julkaisut/julkaisut/julkaisu-28-23.pdf">Tieliikenneonnettomuudet Helsingissä 2020-2022</a> -selvityksen mukaan tämä on top 8 vaarallisimpia risteyksiä Helsingissä (20 kpl onnettomuuksia vuosina 2017-2021). On siis tosi hyvä, että risteys suunnitellaan uudelleen. Risteyksen alueella pitäisi alentaa nopeuksia onnettomuuksien välttämiseksi. Olisi hyvä selvittää, että millaisia onnettomuuksia risteyksessä on tapahtunut.</p> <p>Kerro kantasi -palvelussa on esitetty jo hyviä pointteja risteyksestä, kuten autokaistojen kaventaminen ja ajokaistojen määrän vähentäminen. Tällä tavalla risteyksestä saataisiin paljon turvallisempi ja kestäviin liikkumismuotoihin kannustavampi.</p> <p>(Suunnitelmakuva risteyksestä)</p> <p>Risteysaluetta selkeytetään. Hyvä! Liikennevalojen syklin kannattaa olla niin pitkä, että hidaskin jalankulkija pääsee mukavasti koko risteysalueen yli, eikä keskelle tarvitse jäädä odottamaan. Tällä hetkellä tilanne on surkea, koska yksillä valoilla ei ehdi mitenkään suojatien yli pohjois-eteläsuunnassa.</p> <p>(Asukastilaisuudessa esitellyn suunnitelman kuvakaappaus.)</p> <p>(Suunnitelmakuva Sofianlehdonkadun ja Vähänkyröntien risteyksestä. Risteyksen itäisellä puolella ei ola suojatietä Vähänkyröntien ylitse.)</p> <p>Sofianlehdonkadun ja Vähänkyröntien risteyksessä on vain kolme suojatietä. Myös neljäs suojatie kannattaa olla, jotta asuinalueelta pääsee helposti Vähäkyrönpuistoon. Suojateiden eteen pysäköimisen esteeksi kannattaa tehdä rakenteelliset esteet, jotta liian lähelle suojatietä ei pysäköitäisi.</p> <p>Moottoriajoneuvoliikenteen rauhoittamisen lisäksi kannattaa myös kaventaa suojateitä ja lisätä hidasteita, jotta ajoneuvot oikeasti hidastavat. Matalan liikenteen alueet eivät estä esimerkiksi pelastustoimen pääsyä alueelle. Esteiden aiheuttama hidastus kompensoituu sillä, että pelastustoimella ei ole muuta ylimääräistä liikennettä esteenä.</p> <p>(Suunnitelmakuva Vähänkyröntien ja Mäkelänkadun risteyksestä. Suojatie on risteyksen eteläpuolella.)</p> <p>Vähänkyröntien ja Mäkelänkadun risteys on merkittävä reitti Käpylän liikuntapuistoon. Se tulee olemaan kätevä uuden asuinalueen asukkaille. Nykyinen suojatie kannattaisi siirtää risteyksen pohjoispuolelle, jotta idästä Vähänkyröntieltä saapuvat eivät joudu ylittämään kahta suojatietä päästäkseen liikuntapuistoon. Suojatielle tulisi lisätä liikennevalot, koska Mäkelänkadun nopeusrajoitus on niin korkea.</p> <p>Samasta syystä voisi myös kaventaa Vähäkyröntien ja Mäkelänkadun risteyksen itäpuolen suojatietä, jotta autot hidastavat kunnolla jo sinne kääntyessään. Suojatie kannattaa myös korottaa. Tämä samalla viestii varovaisuudesta kadulla, jolla olisi vähemmän liikennettä.</p> <p>Esityksessä oli autoliikennemääriä, mutta ei kävely- tai pyöräilymääriä. Ne voisivat myös auttaa suunnittelussa, joten sellaisia mittauksia kannattaa tehdä. Erityisesti kannattaa kiinnittää huomiota siihen, ketkä ovat jalankulkijoina risteyksissä: lapset, aikuiset ja ikääntyneet.</p> <p>(Kuva Google Maps -palvelusta. Tursontien ja Koskelantien risteyksessä on korotettu suojatie.)</p> <p>Ennen suojatietä kannattaa lisätä rakenteelliset esteet, jotta autoja ei pysäköitäisi suojatien eteen vaarallisesti.</p> <p>(Samoin kannattaisi tehdä Vipusentien ja Koskelantien risteyksessä, jotta hyvä näkyvyys säilyy.)</p> <p>Kalervonkadun ja Koskelantien risteys pitäisi myös suunnitella turvallisemmaksi, koska Kalervonkadulla on myös Käpylän peruskoulun rakennus, Untamo (Kalervonkatu 5, kuvassa jatketaan vasemmalle). Se on nyt perusparannuskorjauksessa, kuten on myös toinen koulurakennus Väinölä (Väinölänkatu 7). Suojatie kannattaa korottaa risteysalueella ja ajonopeuksia laskea reilusti ennen risteystä.</p> <p>Jalkakäytävien ja pyöräteiden suunnittelussa tulee huomioida, että ne ovat tarpeeksi leveitä talvikunnossapidon mahdollistamiseksi. Lisää tilaa kannattaa ottaa ajokaistoista, jos tieleveys ei riitä.</p> <p>(Suunnitelmakuva Vähänkyröntie 4:stä. Vähäkyrönpuistoon ei ole suojatietä kadun yli, vaikka puiston katu päättyy ajoradalle.)</p> <p>Vähänkyröntie 4:stä ei ole selkeää reittiä Vähänkyrönpuistoon, mutta Google Mapsin katukuvaa katsoessa huomaa, että sieltä kuitenkin kuljetaan paljon puistoon.</p> <p>(Kuva Vähänkyröntie 4:n kohdalta. Vasemmalla Vähänkyröntie 4:lle (kerrostalo) vievä tie ja oikealla polku, joka on tallaantunut, kun siitä kuljetaan puistoon. Kuva on vuodelta 2022.)</p> <p>Siihen kohtaan olisi hyvä tehdä suojatie, jotta puistoon pääseminen olisi helpompaa. Sen kannattaa olla korotettu, koska tiellä aiotaan vähentää moottoriajoneuvoliikennettä. Suojatie tulisi keskelle tietä, joten sen kummallekin puolelle kannattaa tehdä pysäköintiä estävät rakenteelliset esteet ennen suojatietä. Muuten katu voi olla vaarallinen ylitäjälle.</p> Mitä on populismi? 2024-03-18T00:00:00Z https://samimaatta.fi/kirjoitukset/mita-on-populismi/ <p><a href="https://netn.fi/fi/kirjat/populismi">Kirjan nimi &quot;Mitä on populismi?&quot; (niin ja näin)</a> esittää jo sen olennaisen kysymyksen. Kirjan on kirjoittanut Jan-Werner Müller. Sen on kääntänyt suomeksi Tapani Kilpeläinen. Nappasin sen mukaan Educa-messuilta!</p> <h2 id="koulussa-opittua" tabindex="-1">Koulussa opittua</h2> <p>Muistan yhteiskuntaopin tunnilta, että opettajani kertoi populismin olevan &quot;yksinkertaisia ratkaisuja monimutkaisiin ongelmiin&quot; ja käytännössä sumutusta. Sen avulla halutaan antaa ymmärtää, että haasteemme ovat yksinkertaisempia kuin ovatkaan ja niiden korjaaminen on helppoa.</p> <p>Käytännössä nämä keinot osoittautuvat ontoiksi ja tehottomiksi.</p> <h2 id="monisyisempi-juttu" tabindex="-1">Monisyisempi juttu</h2> <p>Kirjassa esitellään monia populismin eri puolia ja se nousee entistä ikävämpään valoon. Päällimmäisenä mieleeni ovat jääneet seuraavat pointit.</p> <h3 id="populisti-on-kansan-asialla" tabindex="-1">Populisti on &quot;kansan&quot; asialla</h3> <p>Populisti ajattelee puhuvansa koko kansan puolesta. Populisti antaa ymmärtää, että on olemassa vain yksi kansa, jota hän edustaa. Jos et ole samaa mieltä populistin kanssa, niin olet automaattisesti myös eri mieltä kansan kanssa.</p> <p>Tärkeä asia huomata, että ei ole olemassa yhtä yhtenäistä kansaa. Samassakin joukossa olevat ihmiset ajattelevat osasta asioista samoin ja osasta eri tavoin. On haitallista väittää, että puhuisi ikään kuin koko kansan äänellä.</p> <p>Silloinkin, kun populisti ei näe gallupeissa omien tavoitteidensa menestyvän, hän voi viitata siihen, että hiljainen enemmistö ei vain tullut paikalle.</p> <h3 id="populisti-vaantaa-insituutiot-toimimaan-hanen-edukseen" tabindex="-1">Populisti vääntää insituutiot toimimaan hänen edukseen</h3> <p>Populisti vastustaa instituutioita ja järjestelmiä niin kauan kuin ne jotenkin haittaavat populistin etenmistä tai tavoitteiden saavuttamista. Kun valtaan on päästy, niin populisti pyrkii vaikuttamaan instituutioihin ja muuttamaan niitä tavoilla, jotta ne lopulta pelaavat populistin pussiin.</p> <p>Populistiseen hallintoon kuuluu olennaisena osana &quot;kansalaisyhteiskunnan tukahduttaminen&quot; ja jopa perustuslakiin kajoaminen. Populisti tosissaan uskoo olevansa yhtenäisen kansan edustaja ja täten perustuslainkin pitää heijastaa populistin uskomuksia kansasta ja sen tahdosta.</p> <h3 id="populisti-vastustaa-eliittia-niin-kauan-kuin-han-on-itse-sita-vastassa" tabindex="-1">Populisti vastustaa eliittiä niin kauan kuin hän on itse sitä vastassa</h3> <p>Valtaapitäviä voidaan pitää yhteiskunnan eliittinä ja populisti julistaa, miten he ovat etääntyneet kansasta. Populistin päästessä valtaan, myös kansa pääsee aidosti valtaan. Valtaan päästessään populistista kuitenkin tulee eliittiä. Hän silti ikään kuin puhuu kansan puolesta tai antaa ymmärtää olevan 'oikeanlaista eliittiä' kansan hyväksi.</p> <h3 id="kuka-vain-voi-toimia-populistisesti" tabindex="-1">Kuka vain voi toimia populistisesti</h3> <p>Mitä vielä jäi käteen: Politiikassa voi olla vaikea välttyä siltä, että puhuisi ikään kuin suomalaisten suulla. Olennaisena erona aitoon populistiin edustajan tulee ymmärtää, että kansa on moniarvoinen ja -tahoinen. Terveessä järjestelmässä tätä kansaa edustaa monitahoinen puoluejärjestelmä, kansalaisyhteiskunnan toimijat ja itse kansalaiset.</p> <h2 id="todella-pieni-osa-suomalaisista-kuuluu-puolueeseen" tabindex="-1">Todella pieni osa suomalaisista kuuluu puolueeseen</h2> <p>Moniarvoisessa puoluejärjestelmässä olisi tärkeää, että yhä useampi kuuluisi puolueeseen - ja minusta vielä tärkeämpää, että kuuluttaisiin eri puolueisiin. <a href="https://fi.wikipedia.org/wiki/Luettelo_Suomen_puolueista">Wikipedian luettelossa Suomen puolueista</a> näkee taulukointia puolueiden jäsenmääristä:</p> <ul> <li>Keskusta: 77 000 (2021)</li> <li>SDP: 29 600 (2021)</li> <li>Kokoomus: 27 000 (2021)</li> <li>RKP: 22 365 (2020)</li> <li>KD: 8 400 (2020)</li> <li>Vasemmistoliitto: 12 000 (2020)</li> <li>Suomen kommunistinen puolue: 2 500 (2017)</li> <li>Vihreät: 7 800 (2021)</li> <li>Perussuomalaiset: 15 700 (2021)</li> </ul> <p>Yhteensä siis 202 365 jäsentä (eri vuosien tietoja yhdistämällä). <a href="https://dvv.fi/henkiloasiakkaat">Digi- ja väestötietoviraston etusivun mukaan (noudettu 18.3.2024)</a> Suomessa on 5,6 miljoonaa kansalaista, niin tämä tekee noin 3,6 prosenttia.</p> <h2 id="laajenna-puoluekenttaa-tai-liity-puolueeseen" tabindex="-1">Laajenna puoluekenttää tai liity puolueeseen</h2> <p>Käytännössä Suomen tämänhetkinen puoluekenttä koostuu vain 3,6 prosentista suomalaisia. Näistä 3,6 prosentista valitaan 200 kansanedustajaa, jotka edustavat koko Suomea. Puoluekenttä voisi siis olla laajempi. Jos uuden puolueen perustaminen ei nappaa, niin tätä edeltävä hyvä askel voisi olla puolueeseen liittyminen!</p> Saavutettavat matemaattiset kaavat 2024-03-11T00:00:00Z https://samimaatta.fi/kirjoitukset/saavutettavat-matemaattiset-kaavat/ <p>Tämä sivu korvaa aiemman kirjoitukseni matemaattisen sisällön tuottamisesta saavutettavasti: <a href="/matematiikka-verkossa-ja-sahkokirjoissa/">Matematiikka verkossa ja sähkökirjoissa</a>.</p> <p>Tällä sivulla ei ole tutustuttu tarkemmin erilaisiin lukuohjelmiin, jotka tukevat MathML-koodia, joten siltä osin edellistäkin kirjoitusta voi vielä lukea.</p> <h2 id="esitietovaatimukset" tabindex="-1">Esitietovaatimukset</h2> <ul> <li>Ymmärrät HTML- ja LaTeX-kielten käyttöä.</li> <li>Olet valmis oppimaan MathML-koodia.</li> <li>Osaat käyttää ulkoisia paketteja web-kehityksessä.</li> </ul> <h2 id="tiiviisti" tabindex="-1">Tiiviisti</h2> <ul> <li>Käytä matemaattisen sisällön esittämiseen MathML-koodia. <ul> <li>Kaaviot tai muut graafiset esitykset eivät kuulu MathML-koodin piiriin.</li> </ul> </li> <li>Vaihtoehtoisesti käytä MathML-koodia ja SVG-kuvaa kaavasta.</li> <li>MathML-koodia ei kannata kirjoittaa käsin. Käytä siihen <a href="#keinoja-tuottaa-matemaattisia-kaavoja-math-ml-koodilla">muunnosohjelmia</a>.</li> <li>Tutustu <a href="https://www.w3.org/TR/MathML3/">MathML-standardiin (englanniksi)</a>.</li> <li>Huomioi näkymättömät merkit, joita LaTeX-koodi tai kaavaeditorit eivät käytä <ul> <li>näkymätön &quot;kertaa&quot; -merkki <code>&amp;#8290;</code> tai <code>&amp;InvisibleTimes;</code></li> <li>näkymätön &quot;funktion arvolla&quot; -merkki <code>&amp;#8289;</code> tai <code>&amp;ApplyFunction;</code>.</li> </ul> </li> </ul> <h2 id="math-cat-ohjelmisto" tabindex="-1">MathCAT-ohjelmisto</h2> <p><a href="https://nsoiffer.github.io/MathCAT/">MathCAT (englanniksi)</a> on amerikkalaisen Neil Soifferin kehittämä NVDA-ruudunlukijalisäosa. Se on avointa lähdekoodia ja sitä edelleen kehitetään.</p> <p>Se mahdollistaa MathML-koodilla kirjoitettujen matemaattisten kaavojen kuuntelun ja lukemisen pistekirjoituksella pistenäytöltä - mutta tällä hetkellä vain englanniksi.</p> <h3 id="kaantaminen-suomeksi-ja-ruotsiksi" tabindex="-1">Kääntäminen suomeksi ja ruotsiksi</h3> <p>Saavutettavuuskirjasto Celiassa on käynnissä projekti, jossa lisäosaa käännetään suomeksi ja vastaava virasto kääntää lisäosaa Ruotsissa ruotsiksi.</p> <p>Lisäosaa voi jo testata suomenkielisenä, jos haluaa. Ota yhteyttä Sami Määttään, <a href="mailto:sami.maatta@celia.f">sami.maatta@celia.fi</a>, jos haluat kokeilla lisäosaa.</p> <p>Tavoitteena on, että vuoden 2024 aikana suomen- ja ruotsinkielinen tuki kuuntelulle ja pistekirjoitukselle olisi valmis ja osa MathCAT-ohjelmistoa.</p> <h2 id="miksi-math-ml-koodia-kannattaa-kayttaa" tabindex="-1">Miksi MathML-koodia kannattaa käyttää?</h2> <p><a href="https://www.w3.org/TR/MathML3/">MathML</a> on standardi, jota kehitetään ja ylläpidetään W3C:n toimesta. Sitä voidaan siis pitää vakaana standardina.</p> <p>Se on samankaltainen kuin HTML-standardi, jota W3C myös ylläpitää. Voi siis ajatella, että ne sopivat hyvin yhteen.</p> <p>Näiden syiden vuoksi tulevaisuudessa on erittäin todennäköistä, että MathML-koodissa pitäydytään jatkossakin.</p> <h3 id="selainten-tuki-on-parantunut" tabindex="-1">Selainten tuki on parantunut</h3> <p>Sen tuki on myös parantunut. Vuoden 2023 alusta Chromium-pohjaiset selaimet (Google Chrome, Windows Edge) alkoivat tukea sitä. Olemassa oleva tuki on ollut jo Webkit-pohjaisissa (Safari) ja Gecko-pohjaisissa selaimissa (Firefox).</p> <p>Tuen parantuminen tarkoittaa ensisijaisesti, että MathML tuottaa visuaalisesti oikeannäköistä matemaattista sisältöä. Tästä huolimatta Chromium-pohjaisilla selaimilla on edelleen joitain vaikeuksia näyttää kaikkia epätavallisempia merkintöjä oikein.</p> <p>Tämän paikkaamiseen palataan lopussa.</p> <h2 id="keinoja-tuottaa-matemaattisia-kaavoja-math-ml-koodilla" tabindex="-1">Keinoja tuottaa matemaattisia kaavoja MathML-koodilla</h2> <p>MathML-koodi voi mennä helposti monimutkaiseksi ja hankalaksi ymmärtää, eikä sitä ole suunniteltu ihmisen kirjoitettavaksi. Se on toki mahdollista, mutta suositeltavampaa on käyttää muunnostyökaluja, ja kirjoittaa tavalla, joka on helpompi.</p> <h3 id="la-te-x-koodin-ja-math-ml-koodin-vertailu" tabindex="-1">LaTeX-koodin ja MathML-koodin vertailu</h3> <p>Otetaan esimerkiksi lauseke <span class="sr-only">1 /sqrt(2)</span><math display="block"> <mfrac> <mn>1</mn> <msqrt> <mn>2</mn> </msqrt> </mfrac>. </math></p> <p>Tältä näyttää se kirjoitettuna LaTeX-koodilla:</p> <pre class="language-html"><code class="language-html">\frac{1}{\sqrt{2}}</code></pre> <p>Vastaavasti MathML-koodina:</p> <pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>math</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mfrac</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mn</span><span class="token punctuation">></span></span>1<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mn</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>msqrt</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mn</span><span class="token punctuation">></span></span>2<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mn</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>msqrt</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mfrac</span><span class="token punctuation">></span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>math</span><span class="token punctuation">></span></span></code></pre> <p>Näinkin pienessä esimerkissä jo huomataan MathML-koodin runsasmerkkisyys ja sisäkkäisyys. Se voi olla ihmiselle vaikealukuista, mutta koneelle helppoa.</p> <p>Huomaa, että kuten HTML-koodissakin, niin myös MathML-koodissa tulee kiinnittää huomiota siihen, että osaa käyttää oikeita elementtejä. Muunnostyökalujen haasteet liittyvät siihen, että niissä kaikissa on hieman väreilyä sen suhteen, millaista MathML-koodia ne tuottavat. Siksi MathML-koodia kannattaa myös oikolukea sen jälkeen, kun muunnos on tehty.</p> <p>Ne kuitenkin soveltuvat kaavojen muuttamiseen MathML-koodiksi massana.</p> <p>Seuraavaksi esittelin keinoja, joilla voit kirjoittaa LaTeX-koodia tai sitten käyttää kaavaeditoria MathML-koodin tuottamiseen.</p> <h3 id="la-te-xml-kokonaiset-la-te-x-dokumentit" tabindex="-1">LaTeXML: kokonaiset LaTeX-dokumentit</h3> <p><a href="https://math.nist.gov/~BMiller/LaTeXML/">LaTeXML (englanniksi)</a>: kokonaisten LaTeX-tiedostojen muuttamiseen HTML-tiedostoiksi.</p> <p>Tätä en ole itse testannut, mutta esijulkaisuja jakava <a href="https://arxiv.org/">ArXiv (englanniksi)</a> käyttää sitä matemaattisten julkaisujen muuttamiseen HTML-tiedostoiksi. Heillä on myös ohje siitä, miten kirjoittaa hyvää LaTeX-koodia, että muunnos onnistuisi hyvin: <span lang="en"><a href="https://info.arxiv.org/help/submit_latex_best_practices.html">LaTeX Markup Best Practices for Successful HTML Papers (arxiv.org)</a></span>.</p> <h3 id="te-x-zilla-la-te-x-koodi-html-tiedostossa" tabindex="-1">TeXZilla: LaTeX-koodi HTML-tiedostossa</h3> <p><a href="https://github.com/fred-wang/TeXZilla">TeXZilla (GitHub, englanniksi)</a>: HTML-tiedostossa olevien LaTeX-kaavojen muuttamiseksi MathML-koodiksi.</p> <p>Tekemäni ohje sen käyttämiseksi: <a href="/kirjoitukset/la-te-x-koodin-korvaaminen-math-ml-koodilla-html-tiedostossa/">LaTeX-koodin korvaaminen MathML-koodilla HTML-tiedostossa</a>.</p> <h3 id="math-jax-la-te-x-koodi-html-tiedostossa" tabindex="-1">MathJax: LaTeX-koodi HTML-tiedostossa</h3> <p><a href="https://www.mathjax.org/">MathJax (englanniksi)</a>: HTML-tiedostossa olevien LaTeX-kaavojen muuttamiseksi MathML-koodiksi.</p> <p>MathJaxin avulla LaTeX-koodista voi tuottaa MathML-koodia tai SVG-kuvan. Tähän asti se on ollut myös hyvä keino tuottaa saavutettavia matemaattisia kaavoja englanniksi, koska siinä on ollut sisäänrakennettu tekstin tuotto kaavalle.</p> <p>Muun muassa Ylioppilastutkintolautakunta käyttää tätä omassa koeympäristössään, Abitissa.</p> <h3 id="ka-te-x-la-te-x-koodi-html-tiedostossa" tabindex="-1">KaTeX: LaTeX-koodi HTML-tiedostossa</h3> <p><a href="https://katex.org/">KaTeX (enlanniksi)</a>: HTML-tiedostossa olevien LaTeX-kaavojen muuttamiseksi MathML-koodiksi. Se toimii pitkälti, kuten MathJax. Sivuston mukaan se olisi kuitenkin nopeampi.</p> <h3 id="temml-la-te-x-koodi-html-tiedostossa" tabindex="-1">TEMML: LaTeX-koodi HTML-tiedostossa</h3> <p><a href="https://temml.org/">TEMML (englanniksi)</a> on JavaScriptillä kirjoitettu muunnostyökalu, joka toimii selaimessa. Käytän itse sitä nopeiden kaavojen kirjoittamiseen.</p> <p>Sen voi myös asentaa lokaalisti ja oletan, että käyttö muistuttaa TeXZillaa ja MathJaxia.</p> <h3 id="math-type-kaavaeditorin-kaytto" tabindex="-1">MathType: kaavaeditorin käyttö</h3> <p><a href="https://www.wiris.com/en/mathtype/">MathType (Wiris, englanniksi)</a>: Microsoft Office Wordin kaavaeditorin, jonka vaihtoehtoisest kuvauksesta voi kopioida MathML-koodin.</p> <h2 id="mita-muunnostyokalut-eivat-tee" tabindex="-1">Mitä muunnostyökalut eivät tee</h2> <p>LaTeX-koodiin perustuvat muunnostyökalut eivät voi lisätä sellaisia merkkejä kaavaan, joita ei ole itse koodissakaan. Koska LaTeX-koodi kehitettiin ensisijaisesti tekemään hyvältä näyttäviä dokumentteja, se ei sisällä kaikkea semantiikkaa, mikä on mahdollista tehdä MathML-koodissa.</p> <h3 id="nakymaton-kerto-ja-funktion-arvolla-merkki" tabindex="-1">Näkymätön kerto- ja &quot;funktion arvolla&quot; -merkki</h3> <p>Miten tiedetään, että tämä lauseke tarkoittaa funktiota <span class="sr-only">f(x)</span> <math> <mrow> <mi>f</mi> <mo>⁡</mo> <mo form="prefix" stretchy="false">(</mo> <mi>x</mi> <mo form="postfix" stretchy="false">)</mo> </mrow> </math>? Entä mistä tiedetään, että tämä lauseke tarkoittaa kertolaskua <span class="sr-only">2 x</span><math> <mrow> <mn>2</mn> <mo>⁢</mo> <mi>x</mi> </mrow> </math>?</p> <p>Sen toki tietää konktekstista, mutta MathML tarjoaa tähän vielä toisen keinon. MathML-koodin (kuten HTML-koodin) sekaan voi kirjoittaa Unicode-merkkejä, esimerkiksi erilaiset hymiöt ovat tällaisia.</p> <p>Funktion lauseke on kooditasolla näin:</p> <pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>math</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mrow</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mi</span><span class="token punctuation">></span></span>f<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mi</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mo</span><span class="token punctuation">></span></span>&amp;ApplyFunction;<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mo</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mo</span> <span class="token attr-name">form</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>prefix<span class="token punctuation">"</span></span> <span class="token attr-name">stretchy</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>false<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>(<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mo</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mi</span><span class="token punctuation">></span></span>x<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mi</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mo</span> <span class="token attr-name">form</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>postfix<span class="token punctuation">"</span></span> <span class="token attr-name">stretchy</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>false<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>)<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mo</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mrow</span><span class="token punctuation">></span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>math</span><span class="token punctuation">></span></span></code></pre> <p>Kertolaskulauseke on kooditasolla vastaavasti näin:</p> <pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>math</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mrow</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mn</span><span class="token punctuation">></span></span>2<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mn</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mo</span><span class="token punctuation">></span></span>&amp;InvisibleTimes;<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mo</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mi</span><span class="token punctuation">></span></span>x<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mi</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mrow</span><span class="token punctuation">></span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>math</span><span class="token punctuation">></span></span></code></pre> <p>Koska pelkästään lukemalla lausekkeen ei voi tietää, onko kyseessä funktio vai kertolasku, niin Unicode tarjoa tähän kaksi näkymätöntä merkkiä:</p> <ul> <li>näkymätön &quot;kertaa&quot; -merkki <code>&amp;#8290;</code> tai <code>&amp;InvisibleTimes;</code></li> <li>näkymätön &quot;funktion arvolla&quot; -merkki <code>&amp;#8289;</code> tai <code>&amp;ApplyFunction;</code>.</li> </ul> <p>Tällä tavoin MathML-koodin avulla voi myös ilmaista semantiikkaa. Tämä ei tule ilmi LaTeX-koodissa, koska se tuottaa tekstiä, joka on tarkoitus tulkita kontekstissa.</p> <h2 id="miten-matemaattinen-sisalto-kannattaisi-siis-esittaa" tabindex="-1">Miten matemaattinen sisältö kannattaisi siis esittää?</h2> <p>Kaksi suositeltavaa vaihtoehtoa, jotka perustuvat LaTeX-koodin automaattimuunnokseen:</p> <ol> <li>pelkkä MathML-koodi</li> <li>MathML-koodi ja SVG-kuva.</li> </ol> <p>Kummassakaan tapauksessa ei kuitenkaan välty siltä, että MathML-koodi pitäisi vielä oikolukea ja mahdollisesti täydentää näkymättömillä merkeillä.</p> <h3 id="pelkka-math-ml-koodi" tabindex="-1">Pelkkä MathML-koodi</h3> <p>Mainitsin, että selaimet tukevat nykyään jo paremmin MathML-koodia, mutta joitain puutteita on. Puutteita on kokemukseni mukaan kuitenkin niin vähän, että pelkän MathML-koodin käyttäminen onnistuu ihan hyvin. Selain ratkaisee itse, miten kaava näytetään.</p> <p>Tämä onnistuu helposti muunnostyökaluilla.</p> <h3 id="math-ml-koodi-ja-svg-kuva" tabindex="-1">MathML-koodi ja SVG-kuva</h3> <p>Koska selainten tuki kuitenkin vaihtelee, niin ollaksesi täysin varma siitä, että kaava näyttää juuri oikealta, niin käytä yhdistelmää: MathML-koodi ja SVG-kuva matemaattisesta kaavasta.</p> <p>Olennaista tässä ratkaisussa on sen <strong>saavutettavuus</strong>. SVG-kuva ei auta sokeaa ruudunlukijakäyttäjää ja MathML-koodi voi näyttäää eriltä kuin SVG-kuvan matemaattinen kaava. Toimi siis näin</p> <ul> <li>piilota MathML-koodi näkyvistä tyylitiedoston avulla</li> <li>piilota SVG-kuva ruudunlukijalta attribuutilla <code>aria-hidden=&quot;true&quot;</code>.</li> </ul> <p>Tässä ratkaisussa kannattaa hoksata se, että kaavakuva ei katkea ylipitkän rivin seurauksena. Silloin täytyy huolehtia siitä, että sitä voi rullata sivuttain, jotta koko kaavan näkee pienellä ruudulla.</p> Kävelykatu-ilmiö 2024-03-07T00:00:00Z https://samimaatta.fi/kirjoitukset/kavelykatu-ilmio/ <p>Vierailemalla Iso Roobertinkadulla huomaa nopeasti, että &quot;kävelykatu&quot; ei tarkoita juuri mitään. Eräänäkin iltana sen varrelle ja keskelle oli pysäköity autoja. Esimerkki siitä, miten toissijaisena jalankulkua pidetään: katu, jonka pitäisi olla kävelyä varten, ei edes ole sitä.</p> <p>Kiinnostuin kuitenkin selvittämään, että mitä laki itse asiassa sanoo kävelykadusta. Se vei minut syville vesille vanhaan lakiin ja asiantuntijalausuntoihin.</p> <h2 id="sukellus-lakipykaliin" tabindex="-1">Sukellus lakipykäliin</h2> <p><a href="https://www.finlex.fi/fi/laki/ajantasa/2018/20180729#a729-2018">Tieliikennelaissa kävelykadusta</a> lukee:</p> <blockquote class="flow"> <p>44 § Kävelykadulla ajaminen, pysäyttäminen ja pysäköinti</p> <p>Ajoneuvolla kävelykadulla ajettaessa on jalankulkijoille annettava esteetön kulku.</p> <p>Moottorikäyttöisen ajoneuvon saa kävelykadulla ajaa vain kävelykadun varrella olevalle kiinteistölle, jos kiinteistölle ei ole muuta ajokelpoista yhteyttä. Kävelykadun ylittäminen on kuitenkin sallittu. Myös huoltoajo kävelykadulla on sallittu, jos liikennemerkillä niin osoitetaan.</p> <p>Ajonopeus on sovitettava kävelykadulla jalankulun mukaiseksi, eikä se saa ylittää 20 kilometriä tunnissa.</p> <p>Moottorikäyttöistä ajoneuvoa tai sen perävaunua ei saa pysäyttää eikä pysäköidä kävelykadulla. Pysäyttäminen on kuitenkin sallittu pakollisen liikenne-esteen, väistämisvelvollisuuden noudattamisen tai hätätilanteen vuoksi.</p> <p>Jos huoltoajo on kävelykadulla liikennemerkillä sallittu, ajoneuvon saa pysäyttää huoltoajon vaatimaksi ajaksi.</p> </blockquote> <p>Erityisen hämmentävä on kohta &quot;Moottorikäyttöisen ajoneuvon saa kävelykadulla ajaa vain kävelykadun varrella olevalle kiinteistölle, jos kiinteistölle ei ole muuta ajokelpoista yhteyttä.&quot; Mitä tämä tarkoittaa?</p> <p>Olen monesti nähnyt pysäköidyn auton kiinteistön (baarin, ravintolan tai vastaavan) edessä. Olen olettanut, että tämä on varmaan kiinteistön omistajan auto. Nyt halusin selvittää, että saako hän lain puitteissa pysäköidä autonsa kävelykadulle, koska ei pääse kiinteistölleen muutoin? Muutenhan siihen puututtaisiin... Niinhän?</p> <p>Lakiteksti ei ole kovin selkeä tässä tapauksessa, mutta hallituksen esityksestä voisi olla apua. Lainsäädännössä hallituksen esitys edeltää lakia ja yleensä esityksessä perustellaan lainsäädännön pykäliä. Käsittääkseni hallituksen esityksistä haetaan apua tulkintakysymyksissä.</p> <h2 id="mita-hallituksen-esityksessa-sanotaan-kavelykadusta" tabindex="-1">Mitä hallituksen esityksessä sanotaan kävelykadusta?</h2> <p><a href="https://www.finlex.fi/fi/laki/ajantasa/2018/20180729">Tieliikennelakia</a> uudistettiin vuonna 2018, eikä sen hallituksen esityksessä perusteltu kävelykatua koskevaa lainsäädäntöä mitenkään. Kävelykatu tuli ensimmäistä kertaa lakiin vuonna 2006, mutta vanhempaan <a href="https://www.finlex.fi/fi/laki/ajantasa/kumotut/1981/19810267">tieliikennelakiin (1981)</a>. Tästä vuoden 2006 muutoksesta tehtiin hallituksen esitys, jossa kiinteistölle ajamisesta todetaan näin:</p> <blockquote> <p>Kiinteistölle ajaminen tarkoittaisi esimerkiksi kiinteistön pihaan tai autotalliin ajamista, siis kadulta poisajamista.</p> </blockquote> <p>&quot;Kiinteistölle ajo&quot; ei siis missään nimessä tarkoita auton pysäköimistä kävelykadulle, eikä pysäyttämistä tai pysäköintiä sallita kiinteistön edustalle muussa tapauksessa. Eli on aivan perusteltua (lainkin näkökulmasta) olla närkästynyt!</p> <p>Selvittäessäni tätä asiaa en voinut vastustaa lakien tarkempaa tutkimista.</p> <h2 id="uuden-ja-vanhan-lain-vertailu" tabindex="-1">Uuden ja vanhan lain vertailu</h2> <p>Kävelykatua koskevaa lainsäädäntöä oli muutettu tieliikennelakien välissä.</p> <p>Millä tavoin kävelykadusta oli säädetty vuonna 2006? Millaisia muutoksia uuteen lakiin tuli vuonna 2018?</p> <p><a href="https://www.finlex.fi/fi/laki/ajantasa/kumotut/1981/19810267#P33aM1">Vanha laki (2006)</a>:</p> <blockquote class="flow"> <p>33 a § Kävelykadulla ajaminen</p> <p>Kävelykadulla polkupyöräily on sallittu. Moottorikäyttöistä ajoneuvoa saa kuljettaa vain kadun varrella olevalle kiinteistölle, jollei kiinteistölle ole muuta kautta järjestetty ajokelpoista yhteyttä.</p> <p> Moottorikäyttöisen ajoneuvon pysäköinti ja pysäyttäminen kävelykadulla on kielletty, lukuun ottamatta huoltoajoon liittyvää pysäyttämistä silloin, kun huoltoajo on liikennemerkin mukaan sallittu.</p> <p></p><p>Ajonopeus kävelykadulla on sovitettava jalankulun mukaiseksi eikä se saa ylittää 20 km/h.</p><p></p> <p>Kävelykadulla ajoneuvon kuljettajan on annettava jalankulkijalle esteetön kulku.</p> </blockquote> <p><a href="https://www.finlex.fi/fi/laki/ajantasa/2018/20180729#a729-2018">Uusi laki (2018)</a>:</p> <blockquote class="flow"> <p>44 § Kävelykadulla ajaminen, pysäyttäminen ja pysäköinti </p><p> Ajoneuvolla kävelykadulla ajettaessa on jalankulkijoille annettava esteetön kulku. </p> <p>Moottorikäyttöisen ajoneuvon saa kävelykadulla ajaa vain kävelykadun varrella olevalle kiinteistölle, jos kiinteistölle ei ole muuta ajokelpoista yhteyttä. Kävelykadun ylittäminen on kuitenkin sallittu. Myös huoltoajo kävelykadulla on sallittu, jos liikennemerkillä niin osoitetaan. </p> <p> Ajonopeus on sovitettava kävelykadulla jalankulun mukaiseksi, eikä se saa ylittää 20 kilometriä tunnissa. </p> <p>Moottorikäyttöistä ajoneuvoa tai sen perävaunua ei saa pysäyttää eikä pysäköidä kävelykadulla. Pysäyttäminen on kuitenkin sallittu pakollisen liikenne-esteen, väistämisvelvollisuuden noudattamisen tai hätätilanteen vuoksi.</p> <p>Jos huoltoajo on kävelykadulla liikennemerkillä sallittu, ajoneuvon saa pysäyttää huoltoajon vaatimaksi ajaksi.</p> </blockquote> <p>Siis kävelykadun lainsäädäntöä heikennettiin uuteen lakiin! Sinne lisättiin jalkakäytävälle pysäköimistä ja pysäyttämistä koskeva &quot;pakollinen liikenne-este&quot;, joka kokemuksien mukaan tarkoittaa miltei mitä tahansa syytä, jonka autoa käyttävä keksii.</p> <p>Kävelykatu on harvoja lainsäädännössä olevia keinoja osoittaa alueita pelkästään jalankulkijoiden käyttöön, mutta siinäkään suhteessa tämä laki ei aja asiaansa.</p> <p>Kävelykatua koskevaa lainsäädäntöä heikennettiin, joten luonnollisesti kiinnostuin siitä, että miten sitä oli perusteltu hallituksen esityksessä. Vastaus oli, että ei mitenkään. Heikennys oli kirjattu esitykseen heti alussa.</p> <h2 id="kuka-ajoi-jalankulkijoiden-etua" tabindex="-1">Kuka ajoi jalankulkijoiden etua?</h2> <p>Hallituksen esityksistä voi tehdä lausuntoja, kun esitys laista tulee saataville. Kiinnostuin siitä, että mitä lausunnonantajat ovat sanoneet heikennyksestä. Lausuntoja oli 133 kappaletta, joista osa on valmistelevan ministeriön kommentteja, lausunnonantajien asiakirjoja ja diaesityksiä, mutta erilaisia lausuntoja oli ainakin yli 60 kappaletta.</p> <p>Luin kaikki. Yhdessäkään ei puututtu kävelykatua koskevan lainsäädännön heikentämiseen.</p> <p>Mutta miksipä olisikaan?</p> <p>Yksikään taho ei nimenomaisesti keskittynyt jalankulkijan edunvalvontaan. Lausuntoja annettiin liikenneturvallisuuden ja pyöräilijöiden näkökulmista, koska heitä edustavia tahoja on olemassa ja ne ovat aktiivisia. Näille yhdistyksille kunnia siitä, mikä jäi niin monelta huomaamatta: jalankulun merkitys.</p> <h2 id="edes-lainsaadanto-ei-luo-edellytyksia-hyvalle-kavely-ymparistolle" tabindex="-1">Edes lainsäädäntö ei luo edellytyksiä hyvälle kävely-ympäristölle</h2> <p>Kaiken kaikkiaan kävelykatua koskevan lainsäädännön heikentäminen viestii kahta asiaa: jalankulku on toissijainen kulkumuoto, eikä se voi olla prioriteetti kaupunki- tai tiesuunnittelussa.</p> <p>Lainsäädäntö, jonka on tarkoitus koskea pääasiassa kävelyä ja mahdollistaa hyvä kävely-ympäristö edellyttää silti kadun rakentamista siten, että sillä voi liikkua esteettömästi autolla.</p> <p>Niin kauan kuin autoille annetaan erityisoikeuksia liikkua jalankulkijan tilassa jo näin ylimalkaisesti lainsäädännön tasolla, se ei voi ohjata kaupunkia suunnittelemaan parempaa kävely-ympäristöä.</p> WebAIMin ruudunlukijakysely numero 10 2024-03-04T00:00:00Z https://samimaatta.fi/kirjoitukset/web-ai-min-ruudunlukijakysely-numero-10/ <p>Hyppään tietenkin saavutettavuuskelkkaan, koska WebAIM on julkaissut ruudunlukijakyselynsä tulokset. Se on jo kymmenes tällä kertaa! <a href="https://webaim.org/projects/screenreadersurvey10/">Voit lukea itse tuloksista (englanniksi)</a>.</p> <p>Teen nostoja sitä mukaa, kun luen raporttia.</p> <h2 id="kaikki-ruudunlukijan-kayttajat-eivat-ole-sokeita" tabindex="-1">Kaikki ruudunlukijan käyttäjät eivät ole sokeita</h2> <p>Tärkeä asia kannattaa toistaa uudemman kerran: ruudunlukijakäyttäjät eivät ole vain sokot. 5,2 % vastaajista kertoi heillä olevan kognitiivisia haasteita ja 2,2 % motorisia vaikeuksia eli esimerkiksi vaikeuksia käyttää käsiä.</p> <p>Kun siis puhut ruudunlukijalle suunnittelusta, niin otathan huomioon, että ruudunlukijaa saattaa käyttää näkeväkin henkilö! Erilaiset näkymättömät tekstit eivät välttämättä ole toimivin ratkaisu tälle kohderyhmälle.</p> <h2 id="ei-ole-yhta-tiettya-ruudunlukijaa" tabindex="-1">Ei ole yhtä tiettyä ruudunlukijaa</h2> <p>JAWS ja NVDA kilpailevat suosituimman ruudunlukijan asemasta. Tämä ei tarkoita etteikö muita ruudunlukijoita käytettäisi. 71,6 % vastaajista käyttää useampaa kuin yhtä ruudunlukijaa. Tiedän tämän myös käyttäjätestauksesta: jokin lomake toimiikin paremmin toisella ruudunlukijalla tai toisella selaimella.</p> <h2 id="pistekirjoituksen-lukeminen-ei-ole-niin-yleista-kuin-luulin" tabindex="-1">Pistekirjoituksen lukeminen ei ole niin yleistä kuin luulin</h2> <p>38 % vastaajista lukee pistekirjoitusta ruudunlukijan käytön yhteydessä. 62 % ei käytä. Olisin odottanut tilanteen olevan toisinpäin. Ehkä siksi, että koulussa pistekirjoituksen lukeminen korostuu enemmän ja se on näkyvämpää minulle työn kautta. En osaa sanoa, että onko Suomi myös poikkeus tähän. Sen tiedän, että Suomessa pistekirjoituksen opetteluun on kuitenkin hyvä ote.</p> <p>Eri asia onkin, että väheneekö pistekirjoituksen lukeminen aikuisena tai vaikuttaako tähän esimerkiksi sokeutuminen aikuisena, jolloin pistekirjoitusta ei välttämättä jaksa opetella.</p> <h2 id="muista-testata-mobiilissa" tabindex="-1">Muista testata mobiilissa</h2> <p>Suosituimmat mobiiliruudunlukijat ovat VoiceOver 70,6 % (iOS) ja TalkBack 34,7 % (Android). Testaathan siis myös mobiililaitteilla? Tämä puoli on jäänyt itselläkin paitsioon.</p> <h2 id="odotukset-nettisivujen-saavutettavuutta-kohtaan-kasvavat" tabindex="-1">Odotukset nettisivujen saavutettavuutta kohtaan kasvavat</h2> <p>Vuosien kuluessa vastaajat ovat enemmän ja enemmän vastanneet, että saavutettavuutta parantaisi enemmän saavutettavuuden parantaminen nettisivuilla - eikä niinkään, että olisi parempia apuvälineitä. Odotukset saavutettavuudesta siis kovenevat vuosi vuodelta!</p> <h2 id="ei-palautetta-ei-tarkoita-etteiko-sita-olisi" tabindex="-1">Ei palautetta ei tarkoita etteikö sitä olisi</h2> <p>Vastaajista 67 % ei juuri koskaan tai ikinä ota yhteyttä nettisivun omistajaan. Muista siis, että palautteen puute ei tarkoita sitä, että mitään parannettavaa ei ole - vaan saattaa pahimmassa tapauksessa tarkoittaa sitä, että palautetta ei onnistuta jättämään tai ei vaivauduta. Tee siis käyttäjätestausta!</p> <h2 id="aela-kayta-captch-aa" tabindex="-1">Älä käytä CAPTCHAa</h2> <p>Eniten ongelmia sivuilla tuottaa CAPTCHA. Siis se, joka tarkistaa &quot;oletko ihminen vai kone&quot;. Ne perustuvat kuviin, joissa tunnistat esimerkiksi moottoripyöriä tai kirjoitat kirjaimia. Ne eivät ole saavutettavia - älä siis käytä niitä. Muitakin keinoja on.</p> <p>Huhhuh! Siinä oli taas hyvä infopaketti.</p> Luokkaloikkarit-aiheeseen liittyvää muuta luettavaa 2024-03-03T00:00:00Z https://samimaatta.fi/kirjoitukset/luokkaloikkarit-aiheeseen-liittyvaa-muuta-luettavaa/ <p>Omien <a href="/aiheet/luokkaloikkarit/">luokkaloikkarikirjoistusteni</a> lisäksi moni muukin on kirjoittanut siitä.</p> <h2 id="kaunokirjallisuus" tabindex="-1">Kaunokirjallisuus</h2> <ul> <li>Natalia Kallio kirjoittaa aiheesta kaunokirjallisessa teoksessaan &quot;Kotileikki&quot;.</li> </ul> <h2 id="tietokirjallisuus" tabindex="-1">Tietokirjallisuus</h2> <ul> <li>Suomen yhteiskunnan eri segmenttejä käsitellään tietokirjassa &quot;Kahdeksan kuplan Suomi&quot;.</li> <li>&quot;Huijarien vallankumous&quot; -kirjassa on luku, jossa aihetta käsitellään osasyynä huijaritunteille.</li> <li>Katriina Järvinen ja Laura Kolbe kirjoittavat aiheesta kirjoissaan &quot;Luokkaretkellä hyvinvointiyhteiskunnassa: Nykysukupolven kokemuksia tasa-arvosta&quot; ja &quot;Sopivia ja sopimattomia: lempi, luokka ja suomalainen parisuhde&quot;.</li> <li><a href="https://www.longplay.fi/pitkat/koyhan-perheen-lapsi">Katja Raunion kirjoittama juttu köyhästä lapsuudestaan (longplay.fi, maksumuuri)</a>, jossa hän käsittelee suhtautumistaan rahaan ja jutun lopussa sopeutumistaan keskiluokkaan.</li> </ul> <h2 id="tutkimus" tabindex="-1">Tutkimus</h2> <ul> <li>Mari Käyhkön tutkimusartikkelit työläistaustaisten naisten matkasta yliopistoon.</li> <li>Jarmo Kallungin <a href="https://trepo.tuni.fi/handle/10024/148423">väitöskirja kulttuurisesta mausta, joka liittyy yhteiskuntaluokkaan (Tampereen yliopisto)</a>. <a href="https://www.hs.fi/tiede/art-2000009628509.html?share=178e14ab4bde5a605373ac09a884bbc6">Helsingin sanomien artikkeli aiheesta</a>.</li> </ul> <h2 id="tiedatko-sina-kirjallisuutta-luokkaloikkaamisesta" tabindex="-1">Tiedätkö sinä kirjallisuutta luokkaloikkaamisesta?</h2> <p>Lähetä minulle vinkkauksesi, niin tutustun siihen!</p> Lapinlahden satamatunneli 2024-02-18T00:00:00Z https://samimaatta.fi/kirjoitukset/lapinlahden-satamatunneli/ <p><a href="https://mementomori.social/@SamiMaatta/111954278348970391">Mastodon-postaus samasta aiheesta</a>.</p> <p>Lapinlahden sairaalan puiston eteläosan kautta aiotaan vetää rekkatunneli satamaliikenteelle Jätkäsaaresta Salmisaareen ja Länsiväylälle. Tällä hetkellä on kaksi vaihtoehtoa, joista valita: suunnitelma A ja suunnitelma D.</p> <p><a href="https://paatokset.hel.fi/fi/kuulutukset-ja-ilmoitukset/yleisotilaisuus-satamatunnelin-liittamisesta-lansivaylaan-292-ja-suunnitelmaluonnokset-esilla">29.2. järjestetään yleisötilaisuus satamatunnelin suunnitelmasta Jätkäsaaren kirjastossa (hel.fi)</a>.</p> <p>Olennainen ero näissä on tunnelin suuaukon sijainti Salmisaaren päässä, mutta tarkemman tutkimisen jälkeen eroja löytyy lisää.</p> <p>Kirkkaalla pinkillä poikkiviivalla on merkitty tunnelin suuaukko ja siitä lähtevät kaksi kaistaa maan alle.</p> <figure> <figcaption>Suunnitelma A:n kaava.</figcaption> <picture><source type="image/webp" srcset="/img/6MqmQSlK3B-1080.webp 1080w"><img loading="lazy" decoding="async" src="/img/6MqmQSlK3B-1080.jpeg" alt="Kaava suunnitelmasta A. Tunnelin ja sen suuaukon rakentaminen lohkaisee huomattavan palan Lapinlahden sairaalan puiston eteläosaa." width="1080" height="1466"></picture> </figure> <figure> <figcaption>Suunnitelma D:n kaava.</figcaption> <picture><source type="image/webp" srcset="/img/02OrzrXf-V-1080.webp 1080w"><img loading="lazy" decoding="async" src="/img/02OrzrXf-V-1080.jpeg" alt="Kaava suunnitelmasta A. Tunnelin ja sen suuaukon rakentaminen lohkaisee huomattavan palan Lapinlahden sairaalan puiston eteläosaa." width="1080" height="1452"></picture> </figure> <h2 id="suunnitelma-d-sailyttaa-lapinlahden-puistoa-ja-mahdollistaa-rakentamisen" tabindex="-1">Suunnitelma D säilyttää Lapinlahden puistoa ja mahdollistaa rakentamisen</h2> <p>Suunnitelma D sijoittaisi tunnelin suuaukon jo sillalle. Tällöin ei tarvitsisi rakentaa Lapinlahden tai sen puiston alueelle. Länsiväylä olisi mahdollista kääntää Salmisaareen ja se mahdollistaisi muita suunnitelmia.</p> <p>Suunnitelma D olisi noin 100 miljoonaa euroa kalliimpi kuin suunnitelma A.</p> <p><a href="https://kartta.hel.fi/ltj/feature-report/182589/">Lapinlahden eteläpuoli on määritetty arvokkaaksi luontokohteeksi (kartta.hel.fi)</a>. Se on vieläpä korkeimman arvoluokan <strong>I</strong> kohde eli hyvin arvokas, sillä</p> <blockquote> <ul> <li>Kohteessa kasvaa valtakunnallisesti uhanalainen laji</li> <li>Kohteessa kasvaa Helsingissä äärimmäisen uhanalainen (CR) laji</li> <li>Kohde on tai siihen kuuluu Helsingissä hyvin harvinainen kasvillisuus- tai ympäristötyyppi. <cite><p></p></cite></li> </ul> <p><a href="https://kartta.hel.fi/Applications/ltj/html/linkitetyt_ltj/kantaan_linkitettyja/Arvottamiskriteerit_kasvikohteet_2020.htm"><em>Helsingin kaupungin luontotietojärjestelmä</em></a></p> <p></p> </blockquote> <p>Lapinlahden Lähde, joka (käsittääkseni) järjestää ja mahdollistaa erilaista toimintaa Lapinlahden sairaalan alueella <a href="https://lapinlahdenlahde.fi/uutiset/tunneli-lapinlahden-puistoon-ei-tanne/">vastustaa nimenomaisesti suunnitelmaa A</a>, jotta puiston eteläosa säilyisi.</p> <p>Tämän lisäksi vaihtoehto A estää kaupungin suunnitelmia kääntää Länsiväylä Salmisaaren suuntaan ja rakentaa alueelle asuntoja 5000 henkilölle ja saman määrän myös työpaikkoja.</p> <p><strong>Lisäys (20.2.2024):</strong> Teemu Pyyluoma käsittelee juuri tätä blogissaan <a href="https://tolkku.blogspot.com/2023/12/satamatunneli-lapinlahteen-on-liian.html?m=1">Satamatunneli Lapinlahteen on liian kallis</a>: Uuden asuinalueen tuomat tulot olisivat suuremmat, mitä suunnitelma D:n suuremmat kustannukset.</p> <figure> <figcaption>Suunnitelmassa D tunneliaukot olisivat sillan molemmin puolin. Rantaviivaa pitin kulkisi virkistysreitti.</figcaption> <picture><source type="image/webp" srcset="/img/od9qEW6N67-1078.webp 1078w"><img loading="lazy" decoding="async" src="/img/od9qEW6N67-1078.jpeg" alt="Havainnekuva suunnitelmasta D. Länsiväylän sillan kummallakin puolella on yhdet kaistat tunnelin suuaukkoihin." width="1078" height="874"></picture> </figure> <h2 id="suunnitelma-a-tuhoaa-lapinlahden-puistoa" tabindex="-1">Suunnitelma A tuhoaa Lapinlahden puistoa</h2> <p>Suunnitelma A lohkaisisi osan Lapinlahden virkistysalueen eteläosasta. Samalla se estäisi tällä hetkellä mahdollisen ja helpon kulun jalkakäytävälle ja pyörätielle Salmisaarenkadun pohjoispuolelle. Se myös siirtäisi Salmisaaren rantaviivaa mukailevan virkistysreitin alun Lapinlahden alueelle. Tämän lisäksi kaksi koirapuistoa pitäisi siirtää Lapinlahden puistosta.</p> <figure> <figcaption>Suunnitelma A:n havainnekuva tunnelin suuaukosta, joka kulkee Ilmarisen toimistorakennuksen takaa.</figcaption> <picture><source type="image/webp" srcset="/img/dt-eHIndmz-1024.webp 1024w"><img loading="lazy" decoding="async" src="/img/dt-eHIndmz-1024.jpeg" alt="Tunnelin suuaukko vie osan Lapinlahden eteläpuolta. Kaksikaistainen autotie menee tunnelin suuaukkoon. Suuaukon vieressä on jaettu jalkakäytävä ja kaksisuuntainen pyörätie." width="1024" height="628"></picture> </figure> <figure> <figcaption>Suunnitelma A poistaisi helpon kulun Salmisaarenkadun pohjoispuolella olevalle jalkakäytävälle ja pyörätielle.</figcaption> <picture><source type="image/webp" srcset="/img/Knq0zFmha_-949.webp 949w"><img loading="lazy" decoding="async" src="/img/Knq0zFmha_-949.jpeg" alt="Karttakuva nykyisestä tilanteesta. Punaisella korostuksella on merkitty poistuva suojatie, joka veisi kätevästi Salmisaarenkadun pohjoispuolella olevalle jalkakäytävälle ja pyörätielle." width="949" height="1411"></picture> </figure> <h2 id="paivitys-2-3-2024" tabindex="-1">Päivitys 2.3.2024</h2> <p>Juoni tiivistyy: <a href="https://www.hs.fi/kaupunki/art-2000010240859.html">Helsingin Sataman kikkailu sai yhden tunnelilinjauksen näyttämään satumaisen halvalta (hs.fi)</a>.</p> <p>Vaihtoehtojen välille syntyvä noin 100 miljoonan euron hintaero johtuu Helenin öljysäiliöiden siirrosta. Jutussa käy ilmi, että Helen olisi siirtämässä ja poistamassa käytöstä osan säiliöistä joka tapauksessa - tai jutun perusteella todennäköisesti.</p> <p>Ymmärsin niin, että teoriassa tunnelivaihtoehdot maksaisivat nyt saman verran.</p> <p>Vaihtoehto D on siis ilmeinen valinta, koska tunnelin alku olisi Länsiväylän sillalla, eikä se haittaisi Lapinlahden puistoa melulla. Osaa puistosta ja sen säilyttämisen arvoista luontoa ei tarvitsisi tuhota. Salmisaaren lisärakentamiselle jäisi tilaa.</p> <p>Ei epäilystäkään.</p> Math equations with Eleventy using TeXZilla 2024-01-03T00:00:00Z https://samimaatta.fi/en/math-equations-with-eleventy-using-te-x-zilla/ <p>Assumed audience:</p> <ul> <li>people making HTML websites with <a href="https://www.11ty.dev/">Eleventy</a></li> <li>people who understand of LaTeX markup</li> <li>people who know how to install npm packages.</li> </ul> <h2 id="installing-te-x-zilla-and-making-a-filter" tabindex="-1">Installing TeXZilla and making a filter</h2> <p>Install TeXZilla using the command <code>npm install texzilla</code>.</p> <p>Then use it in your config file (for example <code>.eleventy.js</code>):</p> <pre class="language-js"><code class="language-js"><span class="token keyword">const</span> TeXZilla <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">"texzilla"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><br>module<span class="token punctuation">.</span><span class="token function-variable function">exports</span> <span class="token operator">=</span> <span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token parameter">eleventyConfig</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><br> eleventyConfig<span class="token punctuation">.</span><span class="token function">addFilter</span><span class="token punctuation">(</span><span class="token string">"math"</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">latex</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><br> <span class="token keyword">return</span> TeXZilla<span class="token punctuation">.</span><span class="token function">toMathMLString</span><span class="token punctuation">(</span>latex<span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> <p><code>.toMathMLString</code> method is described <a href="https://github.com/fred-wang/TeXZilla/wiki/Public-API#texzillatomathmlstring">TeXZilla's GitHub wiki page</a>:</p> <p><code>TeXZilla.toMathMLString = function(aTeX, aDisplay, aRTL, aThrowExceptionOnError)</code></p> <ul> <li><code>aTex</code> is the LaTeX equation and is given to the function as <code>latex</code>.</li> <li><code>aDisplay</code> determines if the MathML equation will be inline or a block element. Options are <code>true</code> or <code>false</code>. <ul> <li>Here I'm using <code>true</code>, so every equation is a block element.</li> </ul> </li> <li><code>aRLT</code> determines if the reading direction is from right o left. Options are <code>true</code> or <code>false</code>. <ul> <li>Here I'm using <code>false</code>, so the reading direction is from left to right.</li> </ul> </li> <li><code>aThrowExceptionOnError</code> determines if the transformation fails, there would be an error message when transforming the LaTeX markup into MathML markup. Options are <code>true</code> or <code>false</code>. <ul> <li>I'm using <code>false</code>, so I'm not getting any error messages.</li> </ul> </li> </ul> <h2 id="using-the-filter" tabindex="-1">Using the filter</h2> <p>Use the filter like any other (in Nunjucks) while using Eleventy.</p> <p>First write the LaTeX equation that you want to see rendered in MathML. Then apply the following filters:</p> <pre class="language-njk"><code class="language-njk"><span class="token delimiter punctuation">{{</span> <span class="token string">"\\frac{1}{\\sqrt{2}}"</span> <span class="token operator">|</span> <span class="token variable">math</span> <span class="token operator">|</span> <span class="token variable">safe</span> <span class="token punctuation">}</span><span class="token punctuation">}</span><br></code></pre> <p>Notice that you have to escape the slashes that LaTeX uses and that you need to also use the <code>safe</code> filter, so that the curly brackets aren't escaped (I assume, I'm not that sure - but it works!).</p> <h2 id="the-end-result" tabindex="-1">The end result</h2> <p>After all this we have a properly rendered MathML equation (assuming your browser supports it, nowadays the major ones should): <math display="block" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mfrac><mn>1</mn><msqrt><mn>2</mn></msqrt></mfrac><mo>.</mo></mrow><annotation encoding="TeX">\frac{1}{\sqrt{2}}.</annotation></semantics></math></p> <h2 id="continuation" tabindex="-1">Continuation</h2> <p>This isn't the most straightforward or elegant solution, but it's a start I managed to do. Shout out to Eleventy Discord! People there really helped me out with this.</p> <p>The best case scenario would be to just be able to write LaTeX markup and have it converted to MathML without individual filters.</p> TeXZillan käyttäminen Eleventyllä 2024-01-03T00:00:00Z https://samimaatta.fi/kirjoitukset/te-x-zillan-kayttaminen-eleventylla/ <p>Esitietovaatimukset:</p> <ul> <li>ymmärrys HTML-sivujen tekemisestä <a href="https://www.11ty.dev/">Eleventyllä (englanniksi)</a></li> <li>ymmärrys LaTeX-koodin kirjoittamisesta</li> <li>ymmärrys yksinkertaisten pakettien käyttämisessä web-sovelluksissa.</li> </ul> <h2 id="paketin-asennus-ja-kayttoonotto" tabindex="-1">Paketin asennus ja käyttöönotto</h2> <p>Asenna TeXZilla projektiisi kommennolla <code>npm install texzilla</code>. Sitten lisää paketti käyttöön <code>.eleventy.js</code>-tiedostossasi (tai muun nimisessä config-tiedostossa):</p> <pre class="language-js"><code class="language-js"><span class="token keyword">const</span> TeXZilla <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">"texzilla"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><br>module<span class="token punctuation">.</span><span class="token function-variable function">exports</span> <span class="token operator">=</span> <span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token parameter">eleventyConfig</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><br> eleventyConfig<span class="token punctuation">.</span><span class="token function">addFilter</span><span class="token punctuation">(</span><span class="token string">"math"</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">latex</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><br> <span class="token keyword">return</span> TeXZilla<span class="token punctuation">.</span><span class="token function">toMathMLString</span><span class="token punctuation">(</span>latex<span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> <p><code>.toMathMLString</code>-metodin käyttö kuvaillaan <a href="https://github.com/fred-wang/TeXZilla/wiki/Public-API#texzillatomathml">TeXZillan GitHub-sivuilla (englanniksi)</a>:</p> <p><code>TeXZilla.toMathMLString = function(aTeX, aDisplay, aRTL, aThrowExceptionOnError)</code></p> <ul> <li><code>aTex</code> on itse LaTeX-kaava, joka on yllä olevassa funktiossa <code>latex</code>.</li> <li><code>aDisplay</code> määrittelee, että näytetäänkö kaava leipätekstinä vai omana block-sisältönään. Vaihtoehdot <code>true</code> tai <code>false</code>. <ul> <li>Oma asetus <code>true</code> eli kaikki kaavat ovat block-sisältöä.</li> </ul> </li> <li><code>aRLT</code> määrittelee, onko lukemissuunta oikealta vasemmalle. Vaihtoehdot <code>true</code> tai <code>false</code>. <ul> <li>Oma asetus <code>false</code> eli lukemissuunta on vasemmalta oikealle.</li> </ul> </li> <li><code>aThrowExceptionOnError</code> määrittelee, tuleeko virheilmoitus, jos LaTeX-koodin muokkaamisessa MathML-koodiksi tapahtuu virhe. Vaihtoehdot <code>true</code> tai <code>false</code>. <ul> <li>Oma asetus <code>false</code> eli en halua erillisiä virheilmoituksia.</li> </ul> </li> </ul> <h2 id="filtterin-kaytto" tabindex="-1">Filtterin käyttö</h2> <p>Filtterin käyttö onnistuu tuttuun tapaan kirjoittamalla ensin LaTeX-koodilla matemaattinen lauseke, jonka haluaa MathML-koodiksi.</p> <pre class="language-njk"><code class="language-njk"><span class="token delimiter punctuation">{{</span> <span class="token string">"\\frac{1}{\\sqrt{2}}"</span> <span class="token operator">|</span> <span class="token variable">math</span> <span class="token operator">|</span> <span class="token variable">safe</span> <span class="token punctuation">}</span><span class="token punctuation">}</span><br></code></pre> <p>Erikoisuutena on, että LaTeX-koodissa täytyy olla kaksoiskenoviivat. Esimerkiksi <code>\\sqrt{}</code>. Tämän lisäksi pitää käyttää myös filtteriä <code>safe</code>, joka vie tekstin sellaisenaan filtterille. Muuten ei saada oikeaa lopputulosta.</p> <h2 id="lopputulos" tabindex="-1">Lopputulos</h2> <p>Kaiken tämän työn jälkeen voidaan kirjoittaa matematiikan kaavoja MathML-koodilla Eleventyllä: <math display="block" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mfrac><mn>1</mn><msqrt><mn>2</mn></msqrt></mfrac><mo>.</mo></mrow><annotation encoding="TeX">\frac{1}{\sqrt{2}}.</annotation></semantics></math></p> <h2 id="jatko" tabindex="-1">Jatko</h2> <p>Tämä ei ole suoraviivaisin tapa saada matemaattista sisältöä Eleventyllä, mutta se on ihan hyvä alku. Parhaimmillaan haluaisin, että voin kirjoittaa LaTeX-koodia sellaisenaan tekstin sekaan miettimättä, mitä filtteriä käytän. Nyt minun pitäisi tehdä vielä erikseen filtteri, joka tekee kaavoista leipätekstin sekaan sopivia tekstejä.</p> <p>Siinä olisi omat haasteensa, joten palaan siihen myöhemmin.</p> Keitä palkaton sairauspoissaolo kurittaa eniten? 2023-12-24T00:00:00Z https://samimaatta.fi/kirjoitukset/keita-palkaton-sairauspoissaolo-kurittaa-eniten/ <p>Hallitus kaavailee ensimmäisen sairauspäivän palkattomuutta. Eittämättä ajatus liittyy epämääräiseen stereotypiaan siitä, että yleisimmät sairauslomapäivät ovat perjantaisin tai maanantaisin. Siis joko pitkää viikonloppua tai krapulapäivää varten. Ajatellaan, että on siis järkevämpää olla kannustamatta tähän käytökseen kitkemällä yhden päivän sairauslomat. (Näin siis mutuilen, mikä palkattoman sairauspoissaolon syynä on.)</p> <p>Katsotaanpa, miten isosta ongelmasta on kyse ja keihin tämä vaikuttaa eniten. Tutkin tätä varten <a href="https://www.stat.fi/tietotrendit/artikkelit/2023/yhden-ja-kahden-paivan-sairauspoissaolot-yleisia/">Tieto &amp; Trendi -lehden julkaisua &quot;Yhden ja kahden päiävän poissaolot yleisiä&quot;</a>. Julkaisuissa ollaan tutkittu vuoden 2022 sairauspoissaoloja.</p> <h2 id="yhden-tai-vajaan-paivan-sairauslomia-pidetaan-todella-vahan" tabindex="-1">Yhden tai vajaan päivän sairauslomia pidetään todella vähän</h2> <p>Vuonna 2022 keskimäärin 7 prosenttia kaikista palkansaajista oli viikon tai vähemmän sairaana poissa töistä. Tämä vastaa 168 000 henkilöä.</p> <p>Suurin osa oli poissa kaksi päivää tai vähemmän. Yhden tai puolikkaan päivän sairauspoissaoloja oli 1,4 prosenttilla palkansaajista. Tämä on noin 34 000 palkansaajaa. Arvioin sen silmämääräisesti ensimmäisestä kaaviosta palkansaajien sairauspoissaolojen kestosta päivinä.</p> <p>Mielestäni siis jo tämä 1,4 prosentin määrä vaikuttaa pieneltä. Tutkitaanpa, että millaiseen ryhmään palkattomuus vaikuttaisi.</p> <h2 id="eniten-paivan-tai-vajaan-paivan-sairauslomapaivia-pitavat-naiset" tabindex="-1">Eniten päivän tai vajaan päivän sairauslomapäiviä pitävät naiset</h2> <p>Naisilla yksittäisiä sairauspoissaolopäiviä on miltei kaksinkertainen määrä miehiin verrattuna. Miehillä yksittäisiä sairauslomapäivä on 12 000 kappaletta, kun taas naisilla 22 000 kappaletta.</p> <p>Aiheellinen kysymys voisi olla, että mistä tämä johtuu? Julkaisussa esitetään ainakin kaksi mahdollista syytä:</p> <blockquote> <p>&quot;Sukupuolten välillä ilmenevään eroon voi liittyä perheenjäsenten hoitamista sairauden vuoksi. Näistä poissaoloista ei ole tarkkaa tietoa työvoimatutkimuksen perusteella.&quot;</p> <p><cite>- Otsikon &quot;Naiset useammin poissa yhden päivän kuin miehet&quot; alla.</cite></p> </blockquote> <blockquote> <p>&quot;Kun tarkastellaan sairauspoissaolopäiviä ammattiryhmittäin, kärjessä on asiakaspalvelutyö terveydenhoitoalalla.&quot;</p> <p><cite>- Otsikon &quot;Sairauspoissaoloja kertyy eniten asiakaspalvelutyössä&quot; alla.</cite></p> </blockquote> <p>Naiset jäävät siis tyypillisimmin kotiin hoitamaan esimerkiksi sairasta lasta. Terveydenhoitoala on myös tyypillisesti naisvaltainen ala. On helppo ymmärtää, että hoitotyössä altistuu myös helpommin sairauksille ja uupumukselle.</p> <h2 id="sairauslomapaivat-eivat-edes-painotu-maanantaille-tai-perjantaille" tabindex="-1">Sairauslomapäivät eivät edes painotu maanantaille tai perjantaille</h2> <p><a href="https://tyoelamatieto.fi/fi/aineistot/lyhyet-sairauspoissaolot-eri-aloilla">Työterveyslaitoksen tekemän kertatutkimuksen (2022)</a> mukaan maanantai ja perjantai eivät ole erityisen suosittuja sairauspoissaolopäiviä. Maanantaina ja perjantaina ollaan (viikonloppua lukuun ottamatta) vähiten poissa sairauden vuoksi. Tiistai, keskiviikko ja torstai ovat yleisempiä sairauspoissaolopäiviä.</p> <h2 id="hallitus-kurittaa-naisia" tabindex="-1">Hallitus kurittaa naisia</h2> <p>Yllätys, yllätys hallitus kurittaa naisia olemattoman ongelman vuoksi.</p> <p>Jos ongelma on olemassa tietyillä aloilla ja sairauspoissaolot ovat oikeasti aiheettomia, niin täytyisi alalla itsellään katsoa peiliin ja miettiä, miksi näin on. Eikä rankaista kaikkia - ja erityisesti naisia.</p> Keinoja tuottaa HTML-tiedostoja, joissa on MathML-koodia 2023-12-03T19:51:17Z https://samimaatta.fi/kirjoitukset/keinoja-tuottaa-html-tiedostoja-joissa-on-math-ml-koodia/ <h2 id="keinoja" tabindex="-1">Keinoja</h2> <ul> <li><a href="https://math.nist.gov/~BMiller/LaTeXML/">LaTeXML (englanniksi)</a>: kokonaisten LaTeX-tiedostojen muuttamiseen HTML-tiedostoiksi.</li> <li><a href="https://github.com/fred-wang/TeXZilla">TeXZilla (GitHub, englanniksi)</a>: HTML-tiedostossa olevien LaTeX-kaavojen muuttamiseksi MathML-koodiksi. <ul> <li>Tekemäni ohje sen käyttämiseksi: <a href="/kirjoitukset/la-te-x-koodin-korvaaminen-math-ml-koodilla-html-tiedostossa/">LaTeX-koodin korvaaminen MathML-koodilla HTML-tiedostossa</a>.</li> </ul> </li> <li><a href="https://www.wiris.com/en/mathtype/">MathType (Wiris, englanniksi)</a>: Microsoft Office Wordin kaavaeditorin, jonka vaihtoehtoisest kuvauksesta voi kopioida MathML-koodin.</li> </ul> LaTeX-koodin korvaaminen MathML-koodilla HTML-tiedostossa 2023-12-02T08:33:01Z https://samimaatta.fi/kirjoitukset/la-te-x-koodin-korvaaminen-math-ml-koodilla-html-tiedostossa/ <p>Esitietovaatimukset:</p> <ul> <li>ymmärrys HTML-sivujen tekemisestä</li> <li>ymmärrys LaTeX-koodin kirjoittamisesta</li> <li>ymmärrys yksinkertaisten pakettien käyttämisessä web-sovelluksissa.</li> </ul> <h2 id="math-ml-koodin-ja-la-te-x-koodin-vertailu" tabindex="-1">MathML-koodin ja LaTeX-koodin vertailu</h2> <p>MathML-koodia on varsin tympeä tuottaa, koska se perustuu vahvasti sisäkkäisiin elementteihin ja on sen vuoksi hankala lukea.</p> <p>LaTeX-koodi on taas helpompi ymmärtää ja paljon helpompi kirjoittaa (ainakin matematiikkaa kirjoittavalle). Se on myös paljon laajemmalle levinnyt tapa tuottaa matemaattista tekstiä. Näiden lopputulos on yleensä PDF-tiedosto, joka ei ole kovin saavutettava eli se toimii korkeintaan välttävästi esimerkiksi ruudunlukijaohjelmistoilla, kuten NVDA, JAWS tai VoiceOver.</p> <p>MathML-koodi:</p> <pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>math</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>http://www.w3.org/1998/Math/MathML<span class="token punctuation">"</span></span><br> <span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>semantics</span><br> <span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mfrac</span><br> <span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mn</span><span class="token punctuation">></span></span>1<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mn</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>msqrt</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mn</span><span class="token punctuation">></span></span>2<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mn</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>msqrt</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mfrac</span><br> <span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>semantics</span><br> <span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>math</span><br><span class="token punctuation">></span></span></code></pre> <p>LaTeX-koodi:</p> <pre class="language-html"><code class="language-html">$\frac{1}{\sqrt{2}}$</code></pre> <p>Kuten nähdään, niin LaTeX-koodi on paljon yksinkertaisempaa, mutta se sisältää paljon vähemmän koneluettavaa informaatiota, eikä sitä tueta web-ympäristössä.</p> <h2 id="html-tiedoston-la-te-x-koodin-muuttaminen-math-ml-koodiksi" tabindex="-1">HTML-tiedoston LaTeX-koodin muuttaminen MathML-koodiksi</h2> <p>Eräs tapa muuttaa HTML-tiedoston kaikki LaTeX-koodit MathML-koodiksi on käyttää <a href="https://github.com/fred-wang/TeXZilla">TeXZilla-nimistä ohjelmistoa (GitHub, englanniksi)</a>. Tapa, jonka esitän on dokumentoitu TeXZillassa ja törmäsin tähän Brian Kardellin sivuilla, joilla on hän myös hiukan avaa prosessia. <a href="https://bkardell.com/blog/NuclearMaths.html">Blogipostauksessaan Brian Kardell demonstroi, miten hän on muuttanut kokonaisen &quot;nettisivukirjan&quot; LaTeX-koodin MathML-koodiksi (englanniksi)</a>.</p> <p>Esittelen siis täysin saman tavan, jotta toivottavasti saman tekeminen olisi seuraavalle helpompaa.</p> <h3 id="vaihe-1-te-x-zillan-asentaminen" tabindex="-1">Vaihe 1: TeXZillan asentaminen</h3> <p>Asenna TeXZilla projektiisi <code>npm install texzilla</code> -komennolla.</p> <h3 id="vaihe-2-html-tiedosto" tabindex="-1">Vaihe 2: HTML-tiedosto</h3> <p>Luo HTML-tiedosto, jolle kirjoitat matematiikkaa LaTeX-koodilla. Leipätekstiin sopivan matematiikan kaavan saa tuttuun tapaan yksittäisillä dollarimerkeillä ja &quot;blokkityylisen&quot; kaavan saa kaksoisdollareilla.</p> <p>Esimerkkitiedostoni sisältö:</p> <pre class="language-html"><code class="language-html"><span class="token doctype"><span class="token punctuation">&lt;!</span><span class="token doctype-tag">DOCTYPE</span> <span class="token name">html</span><span class="token punctuation">></span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>html</span> <span class="token attr-name">lang</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>fi<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>head</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>meta</span> <span class="token attr-name">charset</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>UTF-8<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>meta</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>viewport<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>width=device-width, initial-scale=1.0<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>title</span><span class="token punctuation">></span></span>TeXzilla testailua<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>title</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>head</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>body</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>$\frac{1}{\sqrt{2}}$<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>$$\frac{1}{\sqrt{2}}$$<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>body</span><span class="token punctuation">></span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>html</span><span class="token punctuation">></span></span></code></pre> <h3 id="vaihe-3-muunna-html-tiedoston-la-te-x-koodi-math-ml-koodiksi" tabindex="-1">Vaihe 3: Muunna HTML-tiedoston LaTeX-koodi MathML-koodiksi</h3> <p>Käytämme <span lang="en">streamline</span> -tapaa, jonka avulla luomme uuden HTML-tiedoston, jossa LaTeX-koodi on muuttunut MathML-koodiksi.</p> <p>Se tapahtuu komentorivin komennolla</p> <p><code>cat latex.html | node ./node_modules/texzilla/TeXZilla.js streamfilter &gt; mathml.html</code></p> <ul> <li><code>latex.html</code> on lähtötiedosto (voit päättää nimen itse), jossa matematiikka on kirjoitettu LaTeX-koodilla.</li> <li><code>./node_modules/texzilla/TeXZilla.js</code> on sijainti, jossa projektisi TeXZilla-tiedostot ovat.</li> <li><code>mathml.html</code> on tiedosto (voit päättää nimen itse), jossa LaTeX-koodi on muutettu MathML-koodiksi.</li> <li>Muu kirjoitus komentorivillä on komentoja, jotka kirjoitetaan kuten näytetty.</li> </ul> <h3 id="valmis" tabindex="-1">Valmis!</h3> <p>Nyt sinulla on HTML-tiedosto, jonka matemaattinen teksti on MathML-koodilla tehty.</p> Matematiikan kuuntelu puhesynteesillä suomeksi 2023-11-19T10:22:16Z https://samimaatta.fi/kirjoitukset/matematiikan-kuuntelu-puhesynteesilla-suomeksi/ <p>Ruudunlukijoilla (tai muilla ohjelmistoilla) ei ole mahdollista kuunnella matematiikkaa suomen kielellä. Tämä muuttuu.</p> <p>Katso ja kuuntele demo (mukana myös tekstitykset): <a href="https://www.youtube.com/watch?v=uszqe6Kle-M&amp;feature=youtu.be">MathCAT suomenkielinen demo (Youtube)</a>. Kyseessä on kehitysversio, joten hiomattomia kohtia löytyy paljon.</p> <h2 id="kaynnissa-oleva-projekti" tabindex="-1">Käynnissä oleva projekti</h2> <p>MathCAT-lisäosa on Neil Soifferin kehittämä avoimen lähdekoodin ohjelmisto. Se on ensisijaisesti NVDA-ruudunlukijan lisäosa, mutta ohjelmisto ei ole vain ruudunlukijoille. Se on mahdollista sisällyttää moneen muuhunkin puhetta tuottavaan ohjelmaan. Ohjelmistosta ovat kiinnostuneet muun muassa JAWS-ruudunlukijaa tuottava <span lang="en">Freedom Scientific</span> ja <span lang="en">Dolphin EasyReader</span> -lukuohjelmaa tuottava <span lang="en">Dolphin Computer Access</span>.</p> <p>Tätä projektia tehdään yhteistyössä pohjoismaiden kesken.</p> <p>Nyt mukana ovat Saavutettavuuskirjasto Celiaa vastaavat erikoiskirjastot Ruotsista <span lang="sv">Myndigheten för tillgängliga medier</span> ja <span lang="sv">Specialpedagogiska skolmyndigheten</span>.</p> <p>Ensi vuonna on odotettavissa, että myös Norja, Tanska, Islanti ja Alankomaat (Dedicon) lähtevät mukaan kääntämistyöhön.</p> <p>Vuonna 2024 MathCAT tulee tukemaan myös matematiikan pistekirjoitusta pistenäytöillä.</p> <h2 id="testaa-itse" tabindex="-1">Testaa itse!</h2> <p>Voit suunnata <a href="https://github.com/samimaattaCelia/MathCAT-fi">suomenkielisen MathCAT-lisäosan kehitysversioon GitHubin kautta</a>.</p> <p>Ohjeet testaamiseen (samat löytyvät myös GitHubista):</p> <p>Testaamiseen tarvitset NVDA-ruudunlukijan, joka on saatavilla vain Windows-käyttöjärjestelmälle. Ohje testaamiseen:</p> <ol> <li>Lataa MathCAT-lisäosa NVDA:n lisäosakaupasta ja ota se käyttöön. Voit nyt kuunnella matemaattisia kaavoja englanniksi ja lukea ne myös pistenäytöltä Nemeth- tai UEB-standardilla.</li> <li>Siirry painikkeeseen <code lang="en">code</code>, paina valikko auki ja siirry sen sisällä kohtaan <code lang="en">Download zip</code>.</li> <li>Etsi ladattu tiedosto ja pura se. Avaa purettu kansio.</li> <li>Siirry kansioon <code lang="en">Rules</code> ja kopioi kansio <code lang="en">Languages</code>.</li> <li>Siirry sijaintiin, jonne NVDA lataa lisäosat. Alla ohjeet. Sen pitäisi olla muotoa <code>\AppData\Roaming\nvda\addons\MathCAT\globalPlugins</code>. <ol> <li>Windowsilla sinne pääsee kätevästi painamalla Win-näppäintä ja hakemalla <code>Suorita</code>.</li> <li>Kirjoita Suorita-ikkunaan <code>%appdata%</code>. Se vie sinut oikeaan sijaintiin, josta löydät nvda-kansion (kirjoitettu pienellä).</li> <li>Etene siis nvda, addons, MathCAT, globalplugins, MathCAT, Rules. Rules-kansiossa on oma <code>Languages</code> -kansio.</li> <li>Liitä kansio <code>Languages</code> ja hyväksy tiedostojen korvaaminen. Näin lisäät suomenkielisen osan MathCATiin.</li> </ol> </li> <li>Käynnistä NVDA varmuuden vuoksi uudelleen.</li> <li>MathCATin asetuksia voi muuttaa NVDA-näppäin + N, asetukset, ”MathCAT settings”. (Valikko on englanninkielinen.) Voit muuttaa sitä kautta matematiikan luennan suomenkieliseksi.</li> <li>Valitse luentatavaksi <code>ClearSpeak</code>. Se on käännetty. <code>SimpleSpeak</code> on myös suomenkielinen, mutta sen käännökset on tehty automaattisesti eli tulos ei ole kovin hyvä.</li> <li>Voit nyt testata matematiikan kaavojen luentaa eri sivuilla, jos matematiikka on esitetty MathML-koodilla. <a href="https://samimaattacelia.github.io/math-fi.html">Kokeile esimerkiksi tekemääni testisivustoa</a>. Se ei ole kuitenkaan kattava, joten voit kokeilla esimerkiksi Wikipedian matematiikkasivuja. Niissä oleva matematiikka on esitetty MathML-koodilla.</li> </ol> <p>Jos huomaat puutteita luennassa tai käännöksissä, niin voit lähettää palautetta suoraan Sami Määtälle, <a href="mailto:sami.maatta@celia.fi">sami.maatta@celia.fi</a> tai lisätä GitHubin avulla &quot;issuen&quot;.</p> <h2 id="muutoksia-suosituksiin-math-ml-koodin-kaytosta" tabindex="-1">Muutoksia suosituksiin MathML-koodin käytöstä</h2> <p>Tämä tulee vaikuttamaan tekemääni julkaisuun <a href="/matematiikka-verkossa-ja-sahkokirjoissa/">MathML-koodin käytöstä sähkökirjoissa</a>.</p> <p>Kääntämisen ja pistenäyttötuen jälkeen riittää, että käyttää MathML-koodia sivuillaan ja sähkökirjoissa.</p> Käsitteistöä kustomoiduista näppiksistä 2023-10-15T10:19:56Z https://samimaatta.fi/kirjoitukset/kasitteistoa-kustomoiduista-nappiksista/ <p>Välillä tulee mietittyä kustomoidun näppiksen hankkimista. Lueskelin vähän taustatietoja sitä varten.</p> <h2 id="ansi-ja-iso-nappainasettelu" tabindex="-1">ANSI- ja ISO-näppäinasettelu</h2> <p>Ensimmäisenä ihmettelin ANSI- ja ISO-näppäimistöasettelua. Ilmeisesti ANSI on laajemmassa käytössä Yhdysvalloissa ja ISO esimerkiksi Euroopassa ja Suomessa.</p> <p>https://media.mementomori.social/media_attachments/files/111/238/068/973/275/907/small/f8be0206540790d9.jpeg</p> <h2 id="keycaps-eli-nappainhatut" tabindex="-1">Keycaps eli näppäinhatut</h2> <p>Tällaiseen näppikseen hankintaan yleensä erikseen myös näppäimet. Ne eivät välttämättä tule näppäimistökotelon mukana. Englanniksi niitä kutsutaan nimellä ”keycaps”.</p> <p>Nämä taitavat olla se syy, miksi kustomoituja näppiksiä edes tehdään! Näppiksen ulkonäköä voi helposti muokata erilaisilla keycapseilla.</p> <p>Näitä tilatessa on olennaista muistaa, että tilaa suomalaiseen asetteluun sopivat näppäimet eli saa paketissa mukana tärkeimmät: ä, ö ja å. Näiden keycapsien nimessä lukee yleensä ”Nordic”. En ainakaan törmännyt täysin suomalaisiin keycapseihin.</p> <p>Kuvan lähde: kbdfans.com/collections/keycap</p> <p>https://media.mementomori.social/media_attachments/files/111/238/199/571/725/677/original/a4df74d7736abfa1.png</p> <h2 id="nappaimistokotelon-joustavuus" tabindex="-1">Näppäimistökotelon joustavuus</h2> <p>Näppäimistökoteloa katsoessa törmää vaihtoehtoihin ”flex” tai ”no-flex”. Tämä kertoo, joustaako näppäimistö vai ei, kun sillä kirjoittaa.</p> <p>Ilmeisesti flex on ollut trendi, joka on nyt väistymässä. Itse ainakin haluaisin tukevan näppäimistön.</p> <h2 id="hotswap-vs-soldering" tabindex="-1">Hotswap vs. soldering</h2> <p>Näppäimet asetetaan kytkinten päälle, jotka täytyy kiinnittää näppäimistökotelon sisällä olevaan kehikkoon. Kehikko voi olla ”hotswap” tai ”solderable” eli juotettava.</p> <p>Hotswap tarkoittaa todella helppoa kytkinten ja näppäimien vaihtamista.</p> <p>Ilmeisesti muussa tapauksessa kytkimet juotettaisiin kiinni kehikkoon, mihin tarvitaan jo juottamiseen tarkoitettuja välineitä.</p> <p>Tämä on selvinnyt tähän mennessä.</p> Nettisivujen pystyttäminen 2023-10-06T17:04:51Z https://samimaatta.fi/kirjoitukset/nettisivujen-pystyttaminen/ <p>Olen pystyttänyt nettisivut jo parikin kertaa: nämä omani ja <a href="https://jalankulkijat.fi">Helsingin jalankulkijoiden yhdistyksen nettisivut</a>. Saatat huomata niiden samankaltaisuuden...</p> <p>Olen tehnyt myös aika vanhan (taitaapi olla ihan ensimmäinen kirjoitukseni!), jossa kuvailen, miten omat nettisivut pystytetään. Osin ne pitävät vielä paikkaansa, mutta ohje pätee ennemminkin Wordpress-sivujen pysyttämiseen.</p> <p>Nyt teen ohjeet siltä pohjalta, että ylläpidät sivujasi GitHubin kautta <a href="https://11ty.dev/">Eleventyllä (englanniksi)</a>.</p> <h2 id="ohjeet-nopeasti" tabindex="-1">Ohjeet nopeasti</h2> <p>Oletus on, että olet jo kehittänyt sivustosi GitHubiin.</p> <ol> <li>Domainin eli nettiosoitteen hankinta. <ul> <li>Jos haluat fi-loppuisen osoitteen, niin tarkista sen saatavuus <a href="https://www.traficom.fi/fi/viestinta/fi-verkkotunnukset/fi-verkkotunnushaku">Traficomin palvelusta</a>.</li> <li>Jos fi-loppuisella osoitteella ei ole väliä, niin käytä jotain ulkomaista palvelua domain-hankintaan.</li> </ul> </li> <li>Valitse palveluntarjoaja, jolta vuokraat domainia. Yleensä ne saadaan vuodeksi kerrallaan ja maksat aina vuoden kerrallaan.</li> <li>Käytä <a href="https://www.netlify.com/">Netlify-palvelua (englanniksi)</a>. Sivuston ohjeet ohjaavat oikein hyvin nettisivujen pystyttämiseen.</li> <li>Noudata Netlifyn ohjeita DNS-nimipalvelimen suuntaamiseksi Netlifylle. Tämän jälkeen saat domainin käyttöösi.</li> </ol> <h2 id="temppu-tehty" tabindex="-1">Temppu tehty</h2> <p>Oikeastaan siinä se siis on!</p> Rekrytointi-ilmoituksen näkyvyys Mastodonissa ja LinkedInissä 2023-08-19T07:44:47Z https://samimaatta.fi/kirjoitukset/rekrytointi-ilmoituksen-nakyvyys-mastodonissa-ja-linked-inissa/ <p>Mastodon ja LinkedIn ovat eniten käyttämäni sosiaaliset mediat. Koen, että kummassakin olen onnistunut luomaan kivan ilmapiirin itselleni ja seuraajilleni.</p> <p>Minusta olisi kiva, että useampi tuntemani henkilö käyttäisi Mastodonia. Tämä on siis osaltaan vastaus kysymyksiin, että &quot;Onko Mastodon tarpeeksi iso?&quot; tai &quot;Saako siellä näkyvyyttä?&quot;</p> <p>Vertailen siis erilaisia tunnuslukuja noin vuorokauden niiden julkaisun jälkeen.</p> <p>Jos alustat ovat sinulle tuttuja, niin <a href="#tulokset">hyppää suoraan tuloksiin</a>.</p> <h2 id="mastodon" tabindex="-1">Mastodon</h2> <p>Mastodonissa boostaus tarkoittaa julkaisun uudelleenjakamista, tykkääminen (&quot;<span lang="en">favourite</span>&quot;) ei vaikuta julkaisun näkyvyyteen, vaan on enemmänkin viesti siitä, että se julkaisu on nähty ja siitä tykätään. Vastaaminen toimii, kuten LinkedInissä tai Twitterissä.</p> <p>Tärkeänä erona LinkedIniin on, että Mastodonissa ei ole algoritmia, joka tarjoaa julkaisua henkilöille muille kuin seuraajille. Viestivirta on myös kronologinen. Näkyvyys syntyy siis vain niiden henkilöiden toimesta, jotka jakavat julkaisun omille seuraajilleen.</p> <figure> <figcaption>Kuva 1. <a href="https://mementomori.social/@SamiMaatta/110909046325144979">Rekrytointijulkaisu Mastodonissa</a>. Kuva luotu <a href="mastopoet.ohjelmoi.fi/">Mastopoet-ohjelmalla</a>.</figcaption> <picture><source type="image/webp" srcset="/img/R4evwn4zvE-1200.webp 1200w"><img loading="lazy" decoding="async" alt="Kuvakaappaus käyttäjän Sami Määttä (@SamiMaatta@mementomori.social) viestistä. Viesti on lähetetty Aug 18, 2023, 08:49 ja sillä on 3 tykkäystä, 20 boostia ja 1 vastausta. Nyt olisi tarjolla isommat saappaat, sillä Saavutettavuuskirjasto Celia rekrytoi kehittämis- ja tietohallintojohtajaa! Hyppää suoraan hakuilmoitukseen: valtiolle.fi/fi-FI/ilmoitus?id. Toimisit tiimin päällikkönä ja näin olleen myös johtoryhmän jäsenenä. Päällikkön tehtävissä vastaisit digitalisaation ja tietohallinnon kehittämisestä ja ylläpidosta. Näiden lisäksi vastuullasi olisivat teknisen aineistotuotannon ja arkistoinnin kokonaisuudet. Celia tekee tiivistä yhteistyötä muiden pohjoismaisten sisarvirastojensa kanssa, joten valmius kansainväliseen yhteistyöhön ja hyvät verkostotaidot ovat arvostettuja taitoja! #ICT #saavutettavuus #rekrytointi" src="/img/R4evwn4zvE-1200.jpeg" width="1200" height="862"></picture> </figure> <p>Julkaisussa (19.8.2023) on</p> <ul> <li>3 tykkäystä</li> <li>20 boostausta</li> <li>1 kommentti.</li> </ul> <p>Kommentti oli minulta ja jaoin tietoa valtiolle hakemisesta.</p> <p>Koska Mastodonin viestivirta on kronologinen, niin todennäköisesti vielä jaan julkaisun itse uudelleen. Tällöin se näkyisi mahdollisesti vielä uudelle joukolle, jotka voivat jakaa sitä edelleen.</p> <h2 id="linked-in" tabindex="-1">LinkedIn</h2> <p>LinkedInissä julkaisu saa näkyvyyttä algoritmin ansiosta. En tiedä kovin tarkkaan, miten se toimii. Käsittääkseni julkaisu saa näkyvyyttä erityisesti silloin, kun sen kanssa vuorovaikutetaan tavalla tai toisella. Toki julkaisuaika myös vaikuttaa, minkälaiselle ryhmälle julkaisu tulee ensimmäisenä näkyviin.</p> <p>Reagoiminen ja kommentointi nostavat julkaisua muillekin kuin seuraajillesi. Uudelleenjakaminen toimii, kuten olettaisi: Julkaisu tulee näkyviin henkilön omalla seinällä.</p> <figure> <figcaption>Kuva 2. <a href="https://www.linkedin.com/posts/samimaat_kehitt%C3%A4mis-ja-tietohallintojohtaja-activity-7098178661702414336-0ue5?utm_source=share&utm_medium=member_desktop">Rekrytointijulkaisu LinkedInissä.</a></figcaption> <picture><source type="image/webp" srcset="/img/pBmCL4Q6LV-455.webp 455w"><img loading="lazy" decoding="async" alt="Kuvakaappaus LinkedInin analytiikkapuolelta, jossa on julkaisu Celian vapaasta kehittämis- ja tietohallintokohtajan paikasta. Julkaisulla on 177 'impressionia'. Sen kanssa on vuorovaikutettu reagoimalla 4 kertaa, siinä on yksi kommentti ja nolla uudelleenjakoa." src="/img/pBmCL4Q6LV-455.jpeg" width="455" height="638"></picture> </figure> <p>LinkedInin puolella voin tarkastella julkaisuun liittyviä tunnuslukuja tarkemmin. &quot;<span lang="en">Impressions</span>&quot; voisi kääntää &quot;kohtaamisiksi&quot;. Se kuvaa arviota siitä, kuinka monelle käyttäjälle julkaisu on tullut vastaan.</p> <p>Tilanne 19.8.2023:</p> <ul> <li>reagoitu 4 kertaa</li> <li>jaettu 0 kertaa</li> <li>kommentoitu yhdesti.</li> </ul> <p>Kommentin tein itse, kun jaoin myös tietoa valtiolle hakemisesta.</p> <h2 id="tulokset" tabindex="-1">Tulokset</h2> <p>Tulokset taulukoituna. Jätin oman kommenttini huomioimatta.</p> <div role="region" aria-labelledby="Caption01" tabindex="0"> <table> <caption id="caption01">Mastodonin ja LinkedInin vertailu</caption> <thead> <tr> <th></th> <th>Mastodon</th> <th>LinkedIn</th> </tr> </thead> <tbody> <tr> <th scope="row">Tykkäykset tai reagoinnit</th> <td>3</td> <td>4</td> </tr> <tr> <th scope="row">Uudelleenjaot</th> <td>20</td> <td>0</td> </tr> <tr> <th scope="row">Kommentit</th> <td>0</td> <td>0</td> </tr> <tr> <th scope="row">Kohtaamiset</th> <td>tyhjä</td> <td>177</td> </tr> <tr> <th scope="row">Seuraajien määrä</th> <td>192</td> <td>936</td> </tr> </tbody> </table> </div> <h2 id="johtopaatoksia" tabindex="-1">Johtopäätöksiä</h2> <ul> <li>Suurin ero selkeästi uudelleenjakojen määrässä. Mastodonissa julkaisua jaettiin ylivoimaisesti enemmän.</li> <li>LinkedInin puolella taas tykkäyksi ja reagointeja tuli enemmän kuin Mastodonissa, mutta ero on hyvin pieni. Toisaalta näiden kokonaismäärä on muutenkin pieni.</li> <li>LinkedInissä arvio kohtaamisista oli suhteellisen hyvä verrattuna tykkäyksien määrään. Mastodonissa minulla ei ole vastaavaa keinoa seurata kohtaamisia tai katselukertoja.</li> <li>Ero seuraajien määrissä on huima. Voisi todeta, että Mastodonissa saisi enemmän vastinetta 'rahalleen' kuin LinkedInissä.</li> </ul> <h2 id="selityksia-nakyvyyden-kannalta" tabindex="-1">Selityksiä näkyvyyden kannalta</h2> <p>Mastodonin ja Linkedinin kohderyhmät ja kulttuuri ovat hyvin erilaiset. Ne vaikuttavat olennaisesti näkyvyyteen ja pohdintaan siitä, että kummalla alustalla haluaa olla.</p> <h3 id="alustojen-kohderyhmat" tabindex="-1">Alustojen kohderyhmät</h3> <p>Voi myös kysyä, että ovatko Mastodon-buustaukset yhtä arvokkaita kuin LinkedInin tykkäykset? Kuinka todennäköistä on, että tässä tapauksessa tuleva kehittämis- ja hallintojohtaja on Mastodonissa ja vieläpä samoissa piireissä kuin minä? Sanotaan, että Mastodonia käyttävät edelleen pääasiassa &quot;IT-tyypit&quot;, joten ehkä tässä tapauksessa kohderyhmä onkin oikea.</p> <h3 id="mastodonissa-uudelleenjaetaan-herkemmin" tabindex="-1">Mastodonissa uudelleenjaetaan herkemmin</h3> <p>Mastodonin kulttuuriin kuuluu vahvemmin toisten julkaisujen buustaaminen, jos niiden haluaa näkyvän myös muille. Tämä osaltaan vaikuttaa siihen, että julkaisussa oli enemmän uudelleenjakoja kuin LinkedInissä.</p> <p>Toisaalta LinkedInissä käyttäjät tiedostavat, että reagointi riittää julkaisun esille tuloon myös muille. Mastodonissa tykkääminen ei aja samaa asiaa, joten sitä vastaavasti tehdään vähemmän.</p> <p>Pidän kuitenkin uudelleenjakoa, alustasta riippumatta, arvokkaimpana vuorovaikutuksena, koska se tuo oman julkaisun toisten nähtäville tehokkaimmin. Se myös vaatii hyvin tarkoituksenmukaista toimintaa eli itse uudelleenjakamisen. Lukija on todennut, että tämä kannattaa näyttää muillekin.</p> Hakeminen valtiolle 2023-04-28T15:06:55Z https://samimaatta.fi/kirjoitukset/hakeminen-valtiolle/ <p>Mastodonin puolella viime viikolla joku kyseli hakemisesta valtion virkoihin ja tähän jonkinlaista aloittelijan opasta. 😄</p> <p>Tässä olisi joitain tärppejä!</p> <h2 id="valtio-ei-ole-tyonantajana-yksi-yhteinainen-klontti" tabindex="-1">Valtio ei ole työnantajana yksi yhteinäinen klöntti.</h2> <p>Esimerkiksi etätyökäytännöt vaihtelevat paljonkin eri organisaatioiden välillä: Celialla on yksi läsnäpäivä viikossa, Verohallinnolla ei taida olla yhtään 'pakollista' päivää ja toisaalla voi olla useampi läsnäpäivä.</p> <p>Etätyökäytännöistä kannattaa kysellä hakuilmoituksen yhteyshenkilöltä. Myös erilaiset edut vaihtelevat organisaatioiden välillä.</p> <h2 id="paikan-hakeminen-ja-palkkaus" tabindex="-1">Paikan hakeminen ja palkkaus</h2> <p>Kaikki haut on keskitetty <a href="https://www.valtiolle.fi/fi-FI">valtiolle.fi -sivuille</a> ja hakuilmoituksissa ilmoitetaan pääsääntöisesti palkka. (Hurraa, palkka-avoimuus!)</p> <p>Yleensä palkka koostuu</p> <ul> <li>tehtävän vaativuudesta (peruspalkka)</li> <li>suoritukseen perustuvasta osasta (prosenttiosuus peruspalkan päälle), jota voidaan kutsua myös henkilökohtaiseksi osaksi.</li> </ul> <p>Aloittelevalle suoritusprosentti on monesti välillä 17-20. Omalla kohdallani tämä tarkastettiin puolen vuoden jälkeen ja sitä korotettiin.</p> <p><a href="https://www.linkedin.com/feed/update/urn:li:activity:7056956508017762304?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7056956508017762304%2C7057430217627230208%29&amp;dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287057430217627230208%2Curn%3Ali%3Aactivity%3A7056956508017762304%29">Johanna Koskela täsmensi kommentissaan (LinkedIn)</a>, että prosenttimäärät vaihtelevat organisaatioittain ja aiempi työkokemus voi vaikuttaa henkilökohtaiseen osaan parantavasti. Lisäksi &quot;vaativuustaso 8&quot; voi tarkoittaa aivan jotain muuta organisaatiosta toiseen.</p> <h2 id="paaseeko-valtiolle-toihin-sen-ulkopuolelta" tabindex="-1">Pääseekö valtiolle töihin sen ulkopuolelta?</h2> <p><a href="https://www.valtiokonttori.fi/uutinen/valtion-henkilostokertomus-2021-on-julkaistu/">Valtion henkilöstökertomuksen (Valtiokonttori, 2021)</a> mukaan noin 7 500 rekrytointia tehtiin valtion ulkopuolelta. En tiedä sinä vuonna kaikkien avoinna olevien paikkojen määrää, mutta näihin kaikkiin tuskin riittää valtion sisällä työntekijöitä.</p> <p>Kilpailua paikoista voi toki olla. Mutuiluni pohjalta suosittuja pestejä löytyy ministeriöiden viestinnästä ja HR-puolelta. (Tätä saa korjata, jos on parempaa tietoa.)</p> <p>Toisaalta voi olla todella erityisiäkin paikkoja, johon tarvitaan erikoista täsmäosaamista. Uskon, että tulevaisuudessa nämä tulevat lisääntymään. (Vink, vink: Esteettömyysdirektiivi synnyttää paljon uusia tehtäviä Liikenne- ja viesintäministeriöön.)</p> <h2 id="ikavin-puoli-hakemisessa" tabindex="-1">Ikävin puoli hakemisessa</h2> <p>Kun päätät hakea jotain paikkaa, niin kohtaat ikävimmän eli hakujärjestelmän <a href="https://www.valtiolle.fi/fi-FI">valtiolle.fi -sivustolla</a>. Hakemuksen tekeminen voi olla aikaavievä prosessi, jossa sinulta kysellään ummet ja lammet edellisestä kokemuksesta ja koulutuksesta.</p> <p>Hyvä puoli on että, kun sen kerran tekee, niin voit kopioida täyttämäsi hakemuksen toiseen hakuun helposti! (Kiitos tästä huomiosta <a href="https://www.linkedin.com/feed/update/urn:li:activity:7056956508017762304?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7056956508017762304%2C7056963116932186112%29&amp;dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287056963116932186112%2Curn%3Ali%3Aactivity%3A7056956508017762304%29">Anna Movallille (LinkedIn-kommentti)</a>)</p> <p>P.S. Jodelissa on kanava, jossa keskustellaan valtiosta työpaikkana ja avoimista työpaikoista todella avoimesti. Sitä kannattaa tsekkailla myös. 😁</p> Pienryhmätyöskentely yliopiston matematiikassa 2023-04-22T17:41:12Z https://samimaatta.fi/kirjoitukset/pienryhmatyoskentely-yliopiston-matematiikassa/ <p>Oppimisen tuen foorumissa 2023 Valterin Tiina Sund käsittelu eriyttämistä. Esityksessä esiteltiin eriyttämisen &quot;asteita&quot;, jotka voivat rakentua toistensa varaan (1. pohjana, pyramidimäisesti):</p> <ol> <li>opetusjärjestelyt</li> <li>oppimisympäristö</li> <li>opetusmenetelmät</li> <li>oppimisen tukimateriaali</li> <li>oppimisen arviointi.</li> </ol> <p>Tehtävänä osallistujille oli pohtia, miten oli eriyttänyt jossain opetustilanteessaan. Opetusajastani on kulunut jo hiukan aikaa, mutta muistelen edelleen ylpeydellä, miten vedin matematiikan laskuharjoituksia Oulun yliopistossa.</p> <h2 id="omannakoista-opettamista" tabindex="-1">Omannäköistä opettamista</h2> <p>En erityisemmin pitänyt tavasta, jolla laskuharjoituksia vedettiin: Vetäjä kutsui vuorotellen halukkaita esittämään ja kirjoittamaan oman ratkaisunsa taululle. Tämän jälkeen laskuharjoitusten vetäjä kommentoi ratkaisua ja monesti korjasi kohtia tai kirjoitti niin sanotun oikean ratkaisun taululle.</p> <p>Minusta tähän tuhraantui liikaa aikaa, enkä pitänyt kaikkivaltias-roolista, jonka laskuharjoitusten vetäjä joutui omaksumaan. Se tuntui hyvin yksisuuntaiselta vuorovaikutukselta.</p> <p>Halusin siis tehdä asioita eri tavalla.</p> <p>Päätin että, kun opiskelija saapuu luokkaan hän jakautuu oman valintansa mukaan jompaan kumpaan ryhmään:</p> <ol> <li>Hän on tehnyt laskuharjoitukset ja haluaa tarkistaa vastauksensa.</li> <li>Hän on ei ole tehnyt laskuharjoituksia tai on tehnyt ne osittain ja haluaa työstää niitä vielä.</li> </ol> <p>Tämän lisäksi kannustin kummassakin ryhmässä olevia opiskelijoita menemään pienryhmiin ja keskustelemaan tekemistään ratkaisuista kysymysten avulla:</p> <ul> <li>Mikä tehtävä oli helppo? Miksi?</li> <li>Mikä tehtävä oli vaikea? Miksi?</li> <li>Miten tehtävän oli ratkaissut? Onko ratkaisu erilainen kuin muilla?</li> </ul> <p>Sitten kiertelin pienryhmien välillä kyselemässä, mistä ryhmissä oli keskusteltu ja millaisia ratkaisuja opiskelijat olivat tehneet. Jos koko pienryhmä oli jumissa jossain kohtaa, niin autoin heitä alkuun.</p> <p>Järjestely toimi hyvin, sillä</p> <ol> <li>pystyin tarkastamaan valmiiden opiskelijoiden ratkaisuja sillä aikaa, kun muut pienryhmät kävivät tehtäviä yhdessä läpi</li> <li>vuorovaikutus opiskelijoiden kanssa oli ensisijaisesti kaksisuuntaista.</li> </ol> <h2 id="opetusjarjestelyt-taydentavat-toisiaan" tabindex="-1">Opetusjärjestelyt täydentävät toisiaan</h2> <p>Muistan silti tuskailleeni siksi, että tein asioita eri tavalla kuin olin tottunut. &quot;Entä jos tämä on huonompi tapa opettaa?&quot; muistan miettineeni.</p> <p>Eräs ystäväni tokaisi: &quot;Eiköhän tuo sinulle ominaisempi tapa opettaa tuota parempia tuloksia kuin se, että yrität sopia johonkin muottiin.&quot;</p> <p>Mietin myös sitä, että joillekin opiskelijoille keskustelu ratkaisuista muiden kanssa voi olla monista syistä hankalaa, tai että nämä opiskelijat kokevat oppivansa parhaiten niin sanotusti perinteisellä tavalla.</p> <p>Täytyy kuitenkin muistaa, että en opettanut tyhjiössä, vaan opiskelijat kävivät myös kursseja, joissa opetus tehtiin perinteisemmin. Koin jälkikäteen, että olikin hyvä asia, että pidin näitä laskuharjoituksia juuri tällä tyylillä, koska nyt useammat tavat käsitellä tehtäviä voi auttaa pidemmässä juoksussa.</p> <p>Ratkaisujen esittämisessä korostuu esiintymisen taitojen harjoittelu. Pienryhmätyöskentelyssä korostuu kyky toimia ryhmässä ja käydä keskustelua omista ratkaisuistaan. Siis kaksi (minusta) erittäin tärkeää matemaatikon taitoa.</p> <p>Jos ne siis tehdään oikein...</p> <h2 id="parannettavaa-loytyy" tabindex="-1">Parannettavaa löytyy</h2> <p>Jälkikäteen ajateltuna minun olisi pitänyt panostaa enemmän ryhmäytymiseen ja pienryhmäkeskusteluun. Ei riitä, että opiskelijat laitetaan ryhmiin ja oletetaan, että homma toimii. Matemaattiseen keskusteluun ja yhteistyöhön täytyy myös oppia.</p> <p>Onneksi <a href="https://www.flexibility.fi/events/matemaattisen-keskustelukulttuurin-luominen/">Joustavaan matematiikkaan -täydennyskoulutuksessa on juuri keskusteluun keskittyvä moduuli</a>, jotta sinun ei tarvitse tehdä samaa mokaa.</p> <p>Joka tapauksessa olen tyytyväinen, että uskalsin vetää laskuharjoitukset omalla tavallani. Sitä pidettiin niinkin hyvänä, että eräs toinen laskuharjoitusten vetäjä otti käyttöön samanlaisen järjestelyn sinä vuonna.</p> Tekoälynväläyksiä 2023-03-19T18:03:45Z https://samimaatta.fi/kirjoitukset/tekoalynvalayksia/ <p>No siis, mitä tekoäly edes on? Vaikuttaa siltä, että tähän ei tarvita vastausta, että sitä käytetään. Yhtä kiinnostava kysymys on, että mistä se muodostuu ja mistä &quot;se tulee&quot;.</p> <h2 id="vinoumat-ja-puoluepoliittisuus" tabindex="-1">Vinoumat ja puoluepoliittisuus</h2> <p>Vähän <span lang="en">mainstream<span>-keskustelua on käyty myös Chat<abbr lang="en" title="Generative Pre-trained Transformer">GPT</abbr>:n (tai minkä tahansa muunkaan niin sanotun tekoälyn) vinoutumisesta. Käsittääkseni tutkimuksen saralla se on kuitenkin tiedostettu ja paljonkin(?) tutkittu asia.</span></span></p> <p>Kävi esimerkiksi ilmi, että GPT-4 onkin demari. Tviitin kuvassa on vaalikoneen tulos.</p> <div class="eleventy-plugin-embed-twitter"><blockquote id="tweet-1636032739504783362" class="twitter-tweet"><a href="https://twitter.com/AJTanskanen/status/1636032739504783362"></a></blockquote></div><script src="https://platform.twitter.com/widgets.js" charset="utf-8" async></script> <p><a href="https://web.archive.org/web/20230319181105/https://twitter.com/AJTanskanen/status/1636032739504783362">Web.archive -linkki tviittiin</a>.</p> <p>No, tällaista johtopäätöstä ei voi tehdä pelkästään yhden casen perusteella, mutta se avaa oven asian pohtimiseen. Millaisia vinoumia tekoälyllä voi ylipäänsä olla? Pessimisti minussa myös sanoo, että ei ole mahdollista tehdä tekoälyä, jolla ei olisi ollenkaan vinoumia.</p> <p>Toisaalta emme myöskään odota, että ihmisillä ei olisi vinoumia, joten kuinka voimme odottaa, että (oletettavasti pääosin) ihmisten tuottamaan tekstiin nojaavalla ei olisi myöskään vinoumia?</p> <p>Olisipa keino selvittää, että millaisia vinoumia tekoälyllä on...</p> <h2 id="suljettu-lahdekoodi" tabindex="-1">Suljettu lähdekoodi</h2> <p><a href="https://cdn.openai.com/papers/gpt-4.pdf">GPT-4:n teknisen raportin (englanniksi, PDF)</a> mukaan niin sanottua harjoitusdataa (englanniksi &quot;<span lang="en">training data</span>&quot;) ei aiota julkistaa:</p> <figure> <blockquote lang="en" cite="https://cdn.openai.com/papers/gpt-4.pdf"><p> Given both the competitive landscape and the safety implications of large-scale models like GPT-4, this report contains no further details about the architecture (including model size), hardware, training compute, dataset construction, training method, or similar. </p></blockquote><figcaption lang="en">2 Scope and Limitations of this Technical Report, <span lang="fi">sivu 2.</span></figcaption> </figure> <p>Meillä ei siis ole hajuakaan, että millaista dataa tekoäly on ottanut sisälleen. Se taidetaan tietää, että malli perustuu netissä oleville teksteille ja syötteille, joita käyttäjät antavat ChatGPT:lle.</p> <h2 id="kaventaako-tekoaly-sisaltoja" tabindex="-1">Kaventaako tekoäly sisältöjä?</h2> <p>Koska tekoäly käyttää lähteinään tekstiä, joka on jo olemassa, niin voiko olla vaarana, että sisällöt ja tätä kautta ajattelu ylipäänsä kapenee?</p> <p>Kuvitellaan, että tekoälyn tekstit tulevat jossain vaiheessa täyttämään niin suuren osan sisällöistä, että näitä tekstejä aletaan käyttää harjoitusdatana. Tämän voisi ainakin kuvitella johtavan tilanteeseen, jossa tekoäly alkaa vain toisintaa itseään.</p> <p>Samalla, jos ihmiset käyttävät sitä sisältöjen tuottamiseen tai uuden luomiseen, niin mihin tämä johtaa? Voiko käydä niin, että uusien ja innovatiivisten ideoiden määrä vähenee?</p> <p>Vastapainona voi kai ajatella, että tekoälyn ja sisällön välissä on kuitenkin ihmisen vaikutus. Ehkä syötteet, joita ihmiset antavat johtavatkin kaventumisen sijaan avartumiseen. Tässä tapauksessa vain aika näyttää.</p> <h2 id="tekoaly-ja-omistajuus" tabindex="-1">Tekoäly ja omistajuus</h2> <p>Erityisesti kuvien tuottamisessa olen törmännyt tekijänoikeuskysymyksiin ja henkisen pääoman hyödyntämiseen. Kuvia tai taideteoksia on mahdollista pyytää jonkun tietyn taiteilijan tyylillä. Tekoälyn tuottama työ voi olla vaikea erottaa taitelijan varsinaisesti työstä. Eikä taitelijoilta itseltään ole kysytty, että saako heidän töitään käyttää lähdemateriaalina.</p> <p>Missä määrin sama voi päteä myös teksteihin? On mahdollista pyytää tekstiä esimerkiksi Shakespearen tyylillä, mutta onko tämä henkisen pääoman omimista? Missä määrin voidaan puhua plagioinnista? Sillä käytettävissään netin koko sisältö.</p> <h2 id="tekoalyn-rajallisuus" tabindex="-1">Tekoälyn rajallisuus</h2> <p>On kuitenkin muistettava, että tekoälyllä on käytössään <strong>vain</strong> netin koko sisältö. Todella paljon tekstejä, sisältöjä ja tietoa on netin ulkopuolella, jonne harjoitusdatat eivät ulotu. Tämäkin on siis yksi vinouman lähde: Millaista sisältöä tekoäly ei kykene edes tuottamaan?</p> <p>Etenkin asiaa voidaan miettiä Suomen kielen näkökulmasta. Millaisia tekstejä on saatavilla netissä suomeksi ja miten nämä tekstit vaikuttavat tekoälyn tuottamaan tekstiin?</p> <p>Tekoäly on myös riippuvainen ihmisestä, koska ihmisen täytyy olla luomassa sisältöä, jota se voi hyödyntää.</p> <h2 id="tekoalyn-kayttokohteet" tabindex="-1">Tekoälyn käyttökohteet</h2> <p><a href="https://news.microsoft.com/2023/03/16/introducing-microsoft-365-copilot-your-copilot-for-work/">Microsoft alkaa markkinoimaan <span lang="en">Office 365</span>-ohjelmistoissa toimivaa tekoälyä (englanniksi)</a>, joiden avulla voi esimerkiksi vetää yhteen ja tiivistää sähköposteja, kokouksia, kokouspöytäkirjoja ja niin edelleen. Kuulostaa siistiltä, eikö vain? Ainakin aluksi...</p> <p>Helsingin sanomat uutisoi, miten GPT-4 suoriutuu <abbr title="ylioppilas">YO</abbr>-kokeista ja suomenkielisen uutisartikkelin tiivistämisestä: <a href="https://www.hs.fi/talous/art-2000009454744.html?share=5807ca4b2206bdcb7e5a9e97cade866d">GPT:n uusi versio luo videopelin hetkessä ja kiteyttää laajat tieto­massat nopeasti, näin se on edeltäjäänsä parempi (hs.fi)</a>.</p> <p>Uutisartikkelin tiivistelmän suhteen GPT-4 teki jopa asiavirheitä, jotka vaikuttavat olennaisesti tekstin välittämään tietoon. Entä, kun ihmiset tekevät töitä tällaisten tietojen varassa, joissa on - sanotaanko - 2 % virheitä. Uskaltaako tällaiseen tietoon luottaa?</p> <p>Toisaalta teen työssäni itsekin tiivistelmiä ja poimin jatkon kannalta olennaisia kohtia kokousmuistiinpanoista. Kysymys kuuluukin, että miten paljon luotan edes omaan kykyyni tiivistää tekstiä tai poimia olennaisia asioita? Ja tämähän vielä riippuu vuorokaudenajasta!</p> <p>Olisinko siis valmis luottamaan tekoälyn tekemiin tiivistelmiin, vaikka niissä olisi 0-2 % virheitä verrattuna omiin aivoihini, joissa sama vaihteluväli voi olla 0-10 %? Mikä on siis virhemarginaali, jota kukin on valmis sietämään?</p> Ruudunlukijan käyttö näkevälle 2023-03-12T17:53:27Z https://samimaatta.fi/kirjoitukset/ruudunlukijan-kaytto-nakevalle/ <p>Kirjoituksessa käsitellään</p> <ul> <li>NVDA-ruudunlukijan peruskomennot</li> <li>asetukset näkevälle</li> <li>yleisimmät tavat navigoida verkkosivua</li> <li>hiukan asiaa saavutettavuudesta ja testaamisesta yleisesti</li> </ul> <p>Voit tarkistaa tekniset tiedot alta.</p> <details> <summary>Tekniset tiedot</summary> <ul> <li>Käyttöjärjestelmä: Windows 11</li> <li>Ruudunlukija: NVDA, versio 2022.2.3 </li> <li>Selain: Mozilla Firefox, versio 110.0.1</li></ul> </details> <p>Ohjeet sopivat hyvin aloittelevalle NVDA:n käyttäjälle. Jos et ole vielä ladannut NVDA-ruudunlukijaa, niin voit tehdä sen <a href="https://www.nvaccess.org/download/">NVDA:n sivuilta (englanniksi, nvaccess.org)</a>.</p> <h2 id="nvda-ruudunlukijan-kaynnistaminen-hiljentaminen-ja-sulkeminen" tabindex="-1">NVDA-ruudunlukijan käynnistäminen, hiljentäminen ja sulkeminen</h2> <p>Ensimmäisenä käynnistetään NVDA. Teen tämän Windows-koneella, ja käytän Windows-näppäintä <kdb>Win</kdb>. Kirjoitan hakuun &quot;NVDA&quot; ja avaan sen.</p> <p>NVDA alkaa välittömästi puhua, kun ohjelma käynnistyy, mutta älä anna sen häiritä.</p> <h3 id="ensiasetukset" tabindex="-1">Ensiasetukset</h3> <p>Muutetaan ensiasetukset. Valitsen, että</p> <ol> <li>käytän kannettavaa</li> <li>käytän <kdb>Caps Lock</kdb>-näppäintä <kdb>NVDA</kdb>-näppäimenä</li> </ol> <p>Sen jälkeen ollaan valmiita.</p> <h3 id="hiljentaminen" tabindex="-1">Hiljentäminen</h3> <p>Hiljennetään NVDA pikanäppäimillä <kdb>NVDA</kdb> + <kdb>S</kdb>. Ensimmäisellä kerralla painaessa puhe hiljentyy, toisella käynnistyvät merkkiäänet ja kolmannella puhe tulee takaisin päälle.</p> <h3 id="sulkeminen" tabindex="-1">Sulkeminen</h3> <p>NVDA:n voi sulkea pikanäppäimillä <kdb>NVDA</kdb> + <kdb>Q</kdb>.</p> <h2 id="asetukset-nakevalle-kohdistus-ja-puheen-tarkastelu" tabindex="-1">Asetukset näkevälle (kohdistus ja puheen tarkastelu)</h2> <p>Asetetaan seuraavaksi asetukset, jotka helpottavat käyttöä näkevälle.</p> <p>Voit avata NVDA-valikon työkaluriviltä oikealla klikkauksella NVDA-kuvakkeesta tai käyttämällä <kdb>NVDA</kdb> + <kdb>N</kdb> -pikanäppäimiä.</p> <ol> <li>Siirrytään asetuksiin ja sen jälkeen kohtaan &quot;näkö&quot;.</li> <li>Laitetaan kaikki kohdistukset päälle.</li> </ol> <p>Huomaa, että kohdistus ei toimi aivan kuten olettaisi. Etenkin nettisivua vierittäessä kohdistus voi hypätä outoihin paikkoihin. Se kuitenkin antaa hyvin suuntaa, jos navigoinnissa on aivan hukassa.</p> <p>Seuraavaksi voit myös panna puheen tarkastelun päälle, jos haluat kuuntelemisen sijaan nähdä, mitä ruudunlukija sanoisi. Avaa taas valikko <kdb>NVDA</kdb> + <kdb>N</kdb> -pikanäppäimillä.</p> <ol> <li>Siirry kohtaan &quot;työkalut&quot;.</li> <li>Sitten kohtaan &quot;puheen tarkastelu&quot;.</li> </ol> <p>Tämä avaa ikkunan, joka nyt seuraa, missä navigoit NVDA:n avulla.</p> <h2 id="yleisimmat-tavat-liikkua-nettisivuilla" tabindex="-1">Yleisimmät tavat liikkua nettisivuilla</h2> <p>Nyt, kun perusasetukset ovat päällä, niin voimme harjoitella nettisivuilla liikkumista NVDA:n avulla. Ennen sitä tutustutaan kuitenkin <a href="https://www.eficode.com/fi/blog/ruudunlukijakayttajien-aani-kuuluviin">Eficoden, Näkövammaisten liiton ja Annanpurnan teettämään verkkokyselyyn</a>, josta käy ilmi, mitkä ovat yleisimpiä tapoja liikkua nettisivuilla ruudunlukijan avulla:</p> <ol> <li>Otsikoittain (46,7 %)</li> <li>Hakukentän avulla (28,4 %)</li> <li>Lukemalla sivu läpi (11,7 %)</li> <li>Linkkien avulla (9,1 %)</li> </ol> <h3 id="1-otsikoittain-liikkuminen" tabindex="-1">1. Otsikoittain liikkuminen</h3> <p>Yleisin tapa liikkua oli otsikkotasojen avulla. Otsikoittain liikkumisessa on oikeastaan kaksi eri tapaa:</p> <ol> <li>Kaikkien otsikoitten läpi <kdb>H</kdb>-näppäimellä.</li> <li>Tietyn tasoisten otsikoittein läpi numeronäppäimillä <kdb>1</kdb>, <kdb>2</kdb>, <kdb>3</kdb>, <kdb>4</kdb> ja niin edelleen.</li> </ol> <p>Kokeillaan ensin <kdb>H</kdb>-näppäintä. Siirry sen avulla otsikkotasojen kautta viimeiseen otsikkoon sivulla.</p> <p>Entä sitten, kun ollaan sivun alalaidassa? Miltei kaikissa pikanäppäimissä <kdb>vaihto</kdb>-näppäimen käyttö antaa kulkea takaperin nettisivulla.</p> <p>Nyt <kdb>vaihto</kdb> + <kdb>H</kdb> -pikanäppäimillä voidaan siis siirtyä edelliseen otsikkoon aina ylös asti.</p> <p>Toinen tapa liikkua otsikoittain on käyttää numeronäppäimiä, jolloin siirrymme otsikoittain aina tietyn tasoisen otsikon kautta. Numeronäppäin <kdb>1</kdb> siirtää meidät otsikkotason 1 otsikoista toiseen (niitä on tosin nettisivuilla yleensä vain yksi). Numeronäppäin <kdb>2</kdb> siirtää meitä otsikkotasojen 2 otsikoiden välillä.</p> <p>Näidenkin kohdalla <kdb>vaihto</kdb> + <kdb>numeronäppäin</kdb> mahdollistaa liikkumisen takaperin samoilla otsikkotasoilla.</p> <p>Otsikkotasojen läpi liikkuminen antaa nopeasti hyvän kuvan nettisivujen rakenteesta - jos siis otsikointi on tehty oikein. Näissä esimerkeissä niin on tehty.</p> <h3 id="2-hakukentan-avulla" tabindex="-1">2. Hakukentän avulla</h3> <p>Toiseksi yleisin tapa oli hakukentän avulla. Hakukenttä ei ole ruudunlukijan ominaisuus, mutta jos nettisivuilla on sellainen, niin voimme liikkua siihen <kdb>sarkain</kdb>-näppäimen avulla. Sarkain liikkuu myös kaikenlaisten linkkien ja painikkeiden kautta.</p> <p>Samalla tavalla <kdb>vaihto</kdb> + <kdb>sarkain</kdb> -pikanäppäimillä voidaan liikkua myös takaperin.</p> <p>Tärkeä huomio on, että hakukenttä kannattaa sisällyttää nettisivuille, jos siihen voi vaikuttaa.</p> <h3 id="3-lukemalla-sivun-lapi" tabindex="-1">3. Lukemalla sivun läpi</h3> <p>Kolmanneksi yleisin tapa oli lukea koko sivu läpi. Tähän on useampi eri vaihtoehto.</p> <ol> <li>Voit siirtyä haluamallesi nettisivulle ja käynnistää sen auki ollessa NVDA:n. Yleensä NVDA alkaa lukea kyseistä sivua alusta asti.</li> <li>Monilla sivuilla on “Hyppää sisältöön” -linkki, joka on piilotettu näkyvistä, mutta se löytyy <kdb>sarkaimen</kdb> avulla. Yleensä kulkemalla <kdb>sarkaimella</kdb> taaksepäin tämä linkki löytyy. Painamalla linkkiä päästään suoraan tekstisisältöön ja se voidaan lukea.</li> <li>Jos haluaa edetä nettisivuilla nopeammin, niin voidaan käyttää <kdb>nuolinäppäimiä</kdb>, jolloin NVDA pomppii osiosta toiseen. Tekstissä se liikkuu aina muutaman sanan eteenpäin. <kdb>Nuoli alaspäin</kdb> siirrytään sivua alemmas ja <kdb>nuoli ylöspäin</kdb> siirrytään sivua ylöspäin.</li> <li>Käyttämällä <kdb>Ctrl</kdb> + <kdb>nuolinäppäimet</kdb> siirrytään isompia osioita kerrallaan. Esimerkiksi otsikosta kappaleeseen ja kappaleesta toiseen. Tämä on nopeampi tapa liikkua tekstissä kuin edellinen.</li> <li>Kohdassa, jossa haluaa, että luenta vain jatkuu, niin voi painaa <kdb>NVDA</kdb> + <kdb>A</kdb> -pikanäppäimiä, jolloin alkaa &quot;jatkuva luenta&quot;. Tämän voi tauottaa painamalla kerran <kdb>vaihto</kdb>-näppäintä. Puheen voi käynnistää uudelleen samasta kohdasta painamalla uudestaan <kdb>vaihto</kdb>-näppäintä. Puheen voi keskeyttää kokonaan <kdb><abbr title="Control">Ctrl</abbr></kdb> -näppäimellä, jolloin pitää liikkua uudestaan kohtaan, josta haluaa puheen jatkuvan.</li> </ol> <h3 id="4-linkkien-kautta-liikkuminen" tabindex="-1">4. Linkkien kautta liikkuminen</h3> <p>Neljänneksi yleisin tapa liikkkua nettisivuilla on linkkien kautta. Se tapahtuu <kdb>K</kdb>-näppäimellä ja taaksepäin voi liikkua <kdb>vaihto</kdb> + <kdb>K</kdb> -pikanäppäimillä.</p> <p>Tästä huomataan, miksi linkit kannattaa nimetä ymmärrettävällä tavalla, koska muuten saisimme listan “lue lisää”, “lue lisää” -linkkejä, joiden päämäärästä ei tiedetä mitään ilman kontekstia.</p> <h2 id="perusopit-hallussa-lisaopiskelua-nvda-n-ohjeista" tabindex="-1">Perusopit hallussa! Lisäopiskelua NVDA:n ohjeista</h2> <p>Nyt osaat jo käyttää NVDA:ta nettisivuilla liikkumiseen. Voit tutustua muihin komentoihin NVDA:n valikosta <kdb>NVDA</kdb> + <kdb>N</kdb> -pikanäppäimillä, valitsemalla &quot;ohje&quot; ja &quot;käyttöohje&quot; tai &quot;komentojen pikaopas&quot;.</p> <p>Tästä eteenpäin kannattaa opetella NVDA:n käytöstä lisää sen mukaan millaisia tarpeita tulee vastaan.</p> <h2 id="saavutettavuus-ruudunlukijan-nakokulmasta" tabindex="-1">Saavutettavuus ruudunlukijan näkökulmasta</h2> <p>Muista, että vaikka käyttäisit ruudunlukijaa nettisivujesi testaamiseen, niin se ei täysin vastaa ruudunlukijan käyttäjää, joka käyttää ruudunlukijaa joka päivä. Testauta siis nettisivujasi oikeilla käyttäjillä.</p> <p><a href="https://webaim.org/projects/screenreadersurvey9/#disabilitytypes">WebAIMin ruudunlukijakyselyssä (2021)</a> 79,5 prosenttia vastaajista kertoi, että he ovat sokeita. Kaikki ruudunlukijan käyttäjät eivät siis ole sokeita. Siksi kannattaakin miettiä, että jos saavutettavuutta lähestyy pelkästään sokean ruudunlukijakäyttäjän näkökulmasta, niin keitä muita jättää ulkopuolelle? (Nostin tämän näkökulman <a href="https://adrianroselli.com/2017/02/not-all-screen-reader-users-are-blind.html">Adrian Rosellin kirjoituksen perusteella (englanniksi)</a>.)</p> <p>Saavutettavuus voidaan nykyään myös nähdä listana teknisiä vaatimuksia, kuten saavutettavuusvaatimukset, mutta edes ne eivät takaa, että nettisivut olisivat helppoja käyttää. Tämä kannattaa muistaa, kun suunnittelee omia nettisivujaan tai sisältöjään.</p> <h2 id="liity-odotuslistalle" tabindex="-1">Liity odotuslistalle!</h2> <p>Aion tehdä tämän kirjoituksen pohjalta myös ohjevideon. Ajattelin tehdä maksullisen videon, jonka voisi ostaa esimerkiksi oman työnsä tueksi omaan käyttöön tai koko organisaation käyttöön.</p> <p>Voit liittyä odotuslistalle, joka ei velvoita sinua mihinkään. Ilmoitan listan kautta, kun video on valmis ja voit siinä vaiheessa päättää haluaisitko ostaa videon alennettuu hintaan.</p> <p><a href="https://forms.gle/RnG5FJKji4MyJCCx5">Liity odotuslistalle tästä.</a></p> Tuhansien prosenttien puhallus 2023-01-03T09:37:46Z https://samimaatta.fi/kirjoitukset/tuhansien-prosenttien-puhallus/ <p>Kirjoituksen tarkoitus ei ole nostaa ketään henkilöä tikunnokkaan. Nostan esiin arjessa käyttämäämme (paikoin epätarkkaa) kieltä. Tähän syyllistyvät itse kukin: Minä, sinä, tai kuka tahansa muu.</p> <p>Jos pidämme ymmärrettävää keskustelua tärkeänä, niin tämä on minun tapani kantaa korteni kekoon sen vuoksi.</p> <h2 id="lahde" tabindex="-1">Lähde</h2> <p>Yle julkaisi jutun, jossa taiteilija kertoo, kuinka <a href="https://yle.fi/a/74-20010728">tekoäly on lyhentänyt hänen työaikaansa tuhansia tunteja</a>. Voit hetken miettiä, että mikä otsikoinnissa on väärin.</p> <h2 id="korjaus" tabindex="-1">Korjaus</h2> <p>Jonkin vähentyminen &quot;tuhansia prosentteja&quot; ei ole mahdollista.</p> <p>Mietitäänpä: Jos työtuntien määrä olisi ollut 200 tuntia, niin 25 prosentin vähentyminen tarkoittaisi, että työtunteja olisi vähennyksen jälkeen </p><div class="displaymath" aria-hidden="true">$200 \ \mathrm{h} \cdot (1 - 0{,}25) = 200 \ \mathrm{h} \cdot 0{,}75 = 150 \ \mathrm{h}\text{.}$</div> <span class="sr-only">200 h *(1 -0,25) =200 h *0,75 = 150 h.</span> Siis hänellä olisi 150 tuntia työtä ja tekoäly olisi säästänyt 50 tuntia.<p></p> <p>50 prosentin vähentyminen tarkoittaisi, että työtunteja olisi vähennyksen jälkeen </p><div class="displaymath" aria-hidden="true"> $200 \ \mathrm{h} \cdot (1 - 0{,}50) = 200 \ \mathrm{h} \cdot 0{,}50 = 100 \ \mathrm{h}\text{.}$</div> <span class="sr-only">200 h *(1 -0,50) =200 h *0,50 = 100 h.</span> Siis hänellä olisi 100 tuntia työtä ja tekoäly olisi säästänyt 100 tuntia eli puolet.<p></p> <p>Varmaankin nähdään, että mihin ollaan menossa, joten hyppään suoraan 100 prosenttiin:</p> <p>Jos työaikaa säästyisi 100 prosenttia, niin työtunteja olisi jäljellä </p><div class="displaymath" aria-hidden="true"> $200 \ \mathrm{h} \cdot (1 - 1) = 200 \ \mathrm{h} \cdot 0 = 0 \ \mathrm{h}\text{.}$</div> <span class="sr-only">200 h *(1 -1) =200 h *0 = 0 h.</span> Siis hänellä olisi 0 tuntia työtä eli ei yhtään ja tekoäly olisi säästänyt 200 tuntia eli koko työajan.<p></p> <p>Ei ole siis mielekästä sanoa, että työaikaa säästyisi &quot;tuhansia prosentteja&quot;, koska työaikaa voi säästyä enintään 100 prosenttia. Tämä tarkoittaa, että koko työaika on säästynyt.</p> <h2 id="enta-jos" tabindex="-1">Entä jos?</h2> <p>Mitä tarkoittaisi, jos työaikaa voisikin säästyä yli 100 prosenttia?</p> Luokkaloikkari! Millainen on suhteesi rahaan? 2022-12-09T20:28:38Z https://samimaatta.fi/kirjoitukset/luokkaloikkari-millainen-on-suhteesi-rahaan/ <p>Myönnettäköön, että luokkaloikkaruus ei liity asiaan täysin, mutta joku muukin voi tunnistaa ilmiön: Rahasta ei juurikaan puhuttu lapsuudessa. Minulla ei ollut hajuakaan mihin sitä käytettiin, paljonko sitä oli tai mitä sillä oli tarkoitus tehdä. Millainen suhde minulle pitäisi olla rahaan?</p> <p>Innoituksen tähän postaukseen sain <a href="https://www.instagram.com/growth.forum/"><span lang="en">Growth Forum</span>'in (Instagram)</a> järjestämässä tilaisuudessa. Järjestäjäporukassa on muun muassa mukana <a href="https://www.linkedin.com/in/jonnamaatta/">Jonna Määttä (LinkedIn)</a>! Kiitos kiinnostavasta tilaisuudesta. 😄</p> <p>Tilaisuudessa <a href="https://www.linkedin.com/in/pirjo-v%C3%A4%C3%A4n%C3%A4nen-56b8b4139/">Pirjo Väänänen (LinkedIn)</a> puhui rahasta ja tavoista suhtautua siihen. Voit itsekin miettiä, että herättääkö rahan miettiminen sinussa ahdistusta, iloa vai oletko neutraali? Mitä se kertoo suhteestasi rahaan? Miten se on muotoutunut?</p> <p>Olen miettinyt rahaa suhteessa yrittäjyyteen, joka kiinnostaisi minua, mutta en ole onnistunut etenemään siinä (monesta (teko)syystä).</p> <h2 id="minun-suhteeni-rahaan" tabindex="-1">Minun suhteeni rahaan</h2> <p>Ensinnäkin olen saanut käsityksen, että rahan pyytäminen olisi epäkohteliasta. Kaikki palvelu, josta voisi pyytää rahaa raamitetaan auttamiseksi. Rahan pyytäminen likaa sen. En nytkään osaa erotella, missä vaiheessa minun olisi jopa kohtuullista pyytää palkkiota tekemästäni. Raja ei ole ikinä ollut selkeä. Järjestin <a href="/blog/luokkaloikkarit-kirjoituksista-webinaariin/">Luokkaloikkarit-webinaarinkin</a> hartiavoimin, vaikka koin epämukavuutta, kun kaksi puhujaa tulivat ilmaiseksi paikalle.</p> <p>Huomaan ajattelevani, että on ihmisiä, jotka pitävät rahallista palkkiota miltei mistä vain työstä kohtuullisena. Tämänkään ajatuksen alkuperää en osaa osoittaa. Miten eri tavalla suhtautuisin rahaan, jos puiden halkomisesta tai ruohonleikkuusta olisi maksettukin? Nythän palkkiota on pelottava pyytää, koska syyllistyisin varmaan veropetokseen, sillä en ymmärrä, mitä kaikkea siihen liittyy! On siis turvallisempaa vain tehdä työ työn tekemisen ilosta.</p> <p>Toiseksi olen saanut käsityksen, että rahaa saa töistä työnantajalta. On tärkeämpää tehdä ihan mitä vain työtä, ja pitää siitä kiinni, koska muualta rahaa ei tule. Raha saadaan palkkana työnantajalta, eikä muita reittejä ole tai niistä ei puhuta - tai niistä ei yksinkertaisesti tiedetä.</p> <h2 id="tulotason-kasvu-ja-henkilokohtainen-taloudenhallinta" tabindex="-1">Tulotason kasvu ja henkilökohtainen taloudenhallinta</h2> <p>Ennen olin pienituloinen opiskelija. Nyt olen suurituloinen. Ainakin sen määritelmän mukaan, joka oli Ilta-Sanomissa:</p> <figure> <blockquote><p>“Jos puolestaan käteesi jää yli 2 792 euroa kuukaudessa, olet selvästi suurituloinen, ja 80 prosenttia tienaa Suomessa sinua vähemmän.”</p></blockquote> <figcaption> <cite><a href="https://www.is.fi/taloussanomat/art-2000009063648.html">Kuinka moni on pieni­tuloinen asuinalueellasi?</a></cite>, Ilta-Sanomat </figcaption></figure> <p>Tämä asettaa kyllä omat raha-asiat aivan erilaisiin raameihin. Vaikka elintason nousun myötä välillä tuntuukin siltä, että suurta muutosta ei ole tapahtunut.</p> <p>Samassa suhteessa nousee siis stressi rahan riittävyydestä, vaikka tosiasiassa absoluuttiset menot ovat vain kasvaneet, eivätkä välttämättä suhteelliset. Opiskelijana olin tyytyväinen, että minulla jäi 50 euroa ‘säästöön’. (Siis säästöähän se ei oikeasti ollut, koska otin opintolainaa.) Nykyään hirvittää, jos en saa säästöön useampia satasia. Aivan mieletöntä.</p> <p>Rahanhallinta on myös ihan toisenlaista. Opiskelijana pystyin miettimään, että teen yhden isomman ostoksen kuukaudessa tai sitten minulla on varaa ostaa kalliimpi opiskelijalounas viisi kertaa. Paljon yksinkertaisempaa ja omat talouden rajat olivat todella selkeät. Nyt isompia ostoksia voi tehdä useamman kuukaudessa ja ulkona syöminen (tai siis Woltin kautta tilaaminen) on lisääntynyt huomattavasti. On siis vaikeampi pitää mielessä, mihin sitä onkaan tullut käytettyä rahaa ja kuinka suuren osan taloudesta se nyt kattaakaan.</p> <h2 id="matemaatikko-rahan-hallitsijana" tabindex="-1">Matemaatikko rahan hallitsijana</h2> <p>Tunnen häpeää, että matemaatikkona taloudenhallinta ei olekaan itsestäänselvyys. Muistan, kuinka kauppatieteiden opiskelijat miettivät, että eräs matematiikan luennoitsija on varmaan miljonääri, koska hän on matemaatikko. Paineita suoriutua siis on. Pitkässä matematiikassa sitä ei ollut lainkaan (minun aikanani), eikä varsinkaan yliopistossa. Ainoa kosketukseni talousmatematiikkaan on tullut, kun pidin laskuharjoituksia kauppatieteilijöille. Silloinkin sisältö oli hyvin teoreettista ja tilanteet keksittyjä. Ei siis juurikaan tosimaailmaan liittyviä ongelmia.</p> <p>Talous ja raha ovat siis varsin toissijaisia asioita matematiikassa. Varmaankin “liian yksinkertaisia”, mutta siltä se ei tunnu - ja siitä koko asia johtuukin. Kasvatus ja rahaan liittyvä suhde eivät ole toissijaisia, kun omaa taloutta ja omaa rahaa käsitellään.</p> <p>Olen onnellisessa asemassa, että rahan menoa ei tarvitse aivan oikeasti seurata. Tällä mennessä riittänyt OP:n “talouden tasapaino” -näkymän seuraaminen ja toteaminen, että tulot ovat kuitenkin olleet suuremmat kuin menot joka kuukausi. Oikeasti suunnitelmallinen lähestymistapa rahojen käyttöön on puuttunut. Kuvittelen, että ‘rahoissa kasvanut’ ymmärtää jotain perustavanlaatuista eri tavalla kuin minä ja osaa siksi käyttää varojaan järkevämmin.</p> <h2 id="miten-vakuutukset-toimivat" tabindex="-1">Miten vakuutukset toimivat?</h2> <p>Vakuutusten käyttö on minulle myös aivan tuntematonta. En osaa miettiä asiaa siltä kannalta, että miten vakuutus olisi hyödyllinen minulle. On ollut varmasti tilanteita, joissa olisin voinut käyttää vakuutustani, mutta tilanteessa en ole tajunnut tehdä sitä. Muutenkin vakuutusviidakko vaikuttaa oudolta - ehkä juuri siksi, että sen on oppinut hyväksymään vain asiana, joka otetaan. Sen verran olen ymmärtänyt, että monille sairausvakuutuksen ottaminen on itsestäänselvää, kun taas itse sen ajattelee olevan luksusta, johon ei tarvitsisi turvautua. Onhan meillä julkinenkin terveydenhuolto.</p> <p>Luokkaloikkaamisen vuoksi oma etuoikeus täytyy tunnistaa ja takaraivossa paukuttaa tuttu sävel: “Onpa naurettava ongelma. Ihanko oikeasti vaivaat päätäsi tällaisella? Olisit tyytyväinen, kun saat ruokaa pöytään ja jää ylimääräistäkin.” Ehkä tämä on tätä kahden maailman välissä elämistä. Minulle se on silti todellisuutta yhtä kaikki.</p> <p>Entä sinä? Miten sinä olet ratkaissut taloudenhallintasi?</p> Getting Tailwind to work with Eleventy 2022-11-06T20:30:43Z https://samimaatta.fi/en/getting-tailwind-to-work-with-eleventy/ <p>I was so frustrated with Tailwind and Eleventy, because I wanted to get it working, and it just didn't! I couldn't understand why.</p> <h2 id="my-steps-to-get-tailwind-to-work" tabindex="-1">My steps to get Tailwind to work</h2> <p>I followed <a href="https://www.youtube.com/watch?v=VcW3T9EOo5M&amp;t=551s">Thirus's Youtube tutorial</a> for this.</p> <ol> <li>Install Eleventy normally.</li> <li>Install tailwindcss, postcss and autoprefixer with the command <code>npm install -D tailwindcss postcss autoprefixer</code>. <ul> <li>Because I was using a framework like Eleventy, I had to use postcss and autoprefixer.</li> </ul> </li> <li>Create config files for <code>tailwindcss</code> and <code>postcss</code>:</li> </ol> <p><code>tailwindcss</code>:</p> <pre class="language-js"><code class="language-js"><span class="token comment">/** @type {import('tailwindcss').Config} */</span><br>module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span><br> <span class="token literal-property property">content</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"./public/**/*.{html,js}"</span><span class="token punctuation">]</span><span class="token punctuation">,</span><br> <span class="token literal-property property">theme</span><span class="token operator">:</span> <span class="token punctuation">{</span><br> <span class="token literal-property property">extend</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">,</span><br> <span class="token punctuation">}</span><span class="token punctuation">,</span><br> <span class="token literal-property property">plugins</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span><br><span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre> <p>(I'm not sure if the content should really be from the <code>/public/</code> folder, but let it be for now. It works!)</p> <p><code>postcss</code>:</p> <pre class="language-js"><code class="language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span><br> <span class="token literal-property property">plugins</span><span class="token operator">:</span> <span class="token punctuation">{</span><br> <span class="token literal-property property">tailwindcss</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">,</span><br> <span class="token literal-property property">autoprefixer</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">,</span><br> <span class="token punctuation">}</span><span class="token punctuation">,</span><br><span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre> <ol start="4"> <li>Include Tailwind's components in the css file:</li> </ol> <pre class="language-css"><code class="language-css"><span class="token atrule"><span class="token rule">@tailwind</span> base<span class="token punctuation">;</span></span><br><span class="token atrule"><span class="token rule">@tailwind</span> components<span class="token punctuation">;</span></span><br><span class="token atrule"><span class="token rule">@tailwind</span> utilities<span class="token punctuation">;</span></span></code></pre> <ol> <li>Reference the stylesheet as usual in the layout file and add <code>tailwind.config.js</code> as a watch target to <code>.eleventy.js</code>:</li> </ol> <pre class="language-js"><code class="language-js">eleventyConfig<span class="token punctuation">.</span><span class="token function">addWatchTarget</span><span class="token punctuation">(</span><span class="token string">"tailwind.config.js"</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> <ol start="6"> <li>(Now is the important step!) Get Tailwind running in the terminal. The problem for me was that I didn't understand how to get Eleventy and Tailwind to run at the same time. Thirus showed in the video that it's possible by opening two terminals... 🙃 Which I didn't even realize was possible... So, run Eleventy with <code>npm start</code> (or whatever is in your <code>package.json</code>) and open a second terminal and run <code>npx tailwindcss -i ./src/styles/style.css -o ./public/styles/style.css --watch</code>. <ul> <li>Notice that the <code>-i</code> means the input file, so use yours! Also <code>-o</code> means output file.</li> <li>Also note that your layout file should reference that output file!</li> </ul> </li> </ol> <p>And that got it working for me.</p> <p>It took such a long time... Now I can actually get started with my project.</p> <h2 id="problems-didn-t-end-there" tabindex="-1">Problems didn't end there</h2> <p>I couldn't run <code>npx @11ty/eleventy --serve</code> and <code>npx tailwindcss -i ./src/styles/style.css -o ./public/styles/style.css --watch</code> at the same time to do proper development, so I had to figure it out.</p> <p>I found out two ways!</p> <ol> <li>Use Git Bash and run <code>&quot;npx tailwindcss -i ./src/styles/style.css -o ./public/styles/style.css --watch &amp;&amp; npx @11ty/eleventy --serve&quot;</code>. The order is paramount! It didn't work with running Eleventy first.</li> <li>I installed <a href="https://www.npmjs.com/package/concurrently">Concurrently (npm)</a> and used the command <code>&quot;dev&quot;: &quot;concurrently \&quot;npx tailwindcss -i ./src/styles/style.css -o ./public/styles/style.css --watch\&quot; \&quot;npx @11ty/eleventy --serve\&quot;&quot;</code>. Here the order is also important.</li> </ol> <h2 id="bugs-that-persisted" tabindex="-1">Bugs that persisted</h2> <p>I wanted to run them concurrently, because Tailwind would sometimes break. Hopefully this fixes that.</p> <p>It didn't, but I fixed it later.</p> <h2 id="i-fixed-it" tabindex="-1">I fixed it!</h2> <p>Problem was that I was using <code>npx tailwindcss -i ./src/styles/style.css -o ./public/styles/style.css --watch</code> thus outputting the CSS straight to public. This made it so that Eleventy was building the site content first and then outputting it to <code>public</code>, which didn't have the CSS file at first.</p> <p>I fixed it by changing it to <code>npx tailwindcss -i ./src/styles/style.css -o ./src/styles/tailwind.css --watch</code>. I named it &quot;tailwind.css&quot;, so it wouldn't override the setup CSS file. This way Tailwind builds the CSS file and Eleventy then builds uses that in the output.</p> <p>This also meant changing the stylesheet linking in my <code>base.njk</code> layout: <code>&lt;link rel=&quot;stylesheet&quot; href=&quot;./styles/tailwind.css&quot; /&gt;</code>.</p> <p>I also added the new <code>addWatchTarget</code>s, so Eleventy checks for the CSS changes:</p> <pre class="language-js"><code class="language-js">eleventyConfig<span class="token punctuation">.</span><span class="token function">addWatchTarget</span><span class="token punctuation">(</span><span class="token string">"./public/**/*/*.css"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br>eleventyConfig<span class="token punctuation">.</span><span class="token function">addWatchTarget</span><span class="token punctuation">(</span><span class="token string">"./src/**/*/*.css"</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> <p>Now the persisting problem is that these watch targets seem to cause lots of rebuilding. I have to look into that too...</p> <h2 id="further-modifications" tabindex="-1">Further modifications</h2> <p>I figured that the rebuiding issue stems from overlapping <code>watch</code> commands, so I streamlined what's in my <code>.eleventy.js</code>:</p> <pre class="language-js"><code class="language-js">eleventyConfig<span class="token punctuation">.</span><span class="token function">addPassthroughCopy</span><span class="token punctuation">(</span><span class="token string">"./src/**/*/tailwind.css"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br>eleventyConfig<span class="token punctuation">.</span><span class="token function">addPassthroughCopy</span><span class="token punctuation">(</span><span class="token string">"./src/images/**/*.{png, jpeg}"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><br>eleventyConfig<span class="token punctuation">.</span><span class="token function">addWatchTarget</span><span class="token punctuation">(</span><span class="token string">"./src/**/*/tailwind.css"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br>eleventyConfig<span class="token punctuation">.</span><span class="token function">addWatchTarget</span><span class="token punctuation">(</span><span class="token string">"tailwind.config.js"</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> <p>Now it watches directly the outputted <code>tailwind.css</code> and I figure Eleventy takes care of the building. It seems to work for now.</p> <p>It did cause some of rebuilding being dropped of off BrowserSync, but it still builds it properly.</p> Making a Twitter bot 2022-10-29T10:52:40Z https://samimaatta.fi/en/making-a-twitter-bot/ <p><strong>Update 17.3.2023</strong>: The post is out of date, because of Twitter's changed API policies.</p> <p>I wanted to make a bot that would tweet energy saving tips. The idea was for it to be a part of Finland's national campaign aimed at citizens to reduce energy consumption for the coming winter.</p> <p>Rough steps of what I did:</p> <ol> <li><a href="https://accounts.google.com/signup/v2/webcreateaccount?flowName=GlifWebSignIn&amp;flowEntry=SignUp">Create a gmail account</a> for the bot.</li> <li>Make a <a href="https://twitter.com/">Twitter</a> account for the bot.</li> <li><a href="https://developer.twitter.com/en">Apply for Twitter's developer account</a>. <ul> <li>Go through hoops of getting rights to read and write statuses, and API keys.</li> </ul> </li> <li>Make a prototype: <ol> <li>Make a Google Sheets document that works as a tweet database.</li> <li>Write Python script that fetches and posts statuses (manually).</li> </ol> </li> <li>Get <a href="https://developers.google.com/sheets/api/">Google Sheets API</a>, so your script can access the sheet.</li> <li>Move the Python script to <a href="https://cloud.google.com/">Google Cloud</a>.</li> <li>Automate the Python script with <a href="https://cloud.google.com/scheduler?hl=en_GB">Google Scheduler</a>.</li> <li>Get the bot running! Check out <a href="https://twitter.com/energiarobotti"><span lang="fi">@energiarobotti</span></a>.</li> </ol> <p>By the way, I pretty much followed <a href="https://www.youtube.com/watch?v=83o6rU5XArs">Aaron Jack's Twitter bot building video</a>. It's a bit outdated, but it helps a lot. The sad thing is that he didn't show how to get the developer account for Twitter working. It's the most complicated part of the whole project.</p> <h2 id="make-it-open-source" tabindex="-1">Make it open source</h2> <p>Note that &quot;open source&quot; in this case means making the <a href="https://twitter.com/energiarobotti">Sheet (content in Finnish)</a> and <a href="https://github.com/samimaat/energiarobotti">the code</a> available (without showing the API keys!). Contributing to the Sheet or code is not possible at the moment.</p> <p>It is especially important to state your sources when giving advice that impacts people's wellbeing. It also drives you to make better.</p> Luokkaloikkarit-kirjoituksista webinaariin 2022-10-12T17:22:45Z https://samimaatta.fi/kirjoitukset/luokkaloikkarit-kirjoituksista-webinaariin/ <p>Aloitin kirjoittamisen Luokkaloikkarit-teemasta kesän 2022 alussa. Se oli intiimi teema, josta halusin nähdä lisää keskustelua. Samalla kuitenkin pelkäsin olla se, joka keskustelun käynnistää. Oli kiva nähdä, että se silti resonoi! Löydät kaikki kirjoitukseni tagin <a href="/tags/luokkaloikkarit/">Luokkaloikkarit</a> takaa.</p> <p>Sain kirjoittelun kulminoitumaan myös webinaariin, johon tuli kaksi puhujaa ja 17 ilmoittautumista sekä lopulta 6 osallistujaa. Siistiä saada jotain konkreettista aikaan. Se oli hauskaa! 😄</p> <h2 id="luokkaloikkari" tabindex="-1">Luokkaloikkari</h2> <p>Olen siis luokkaloikkari eli henkilö, joka on siirtynyt yhdestä yhteiskuntaluokasta toiseen. Minun tapauksessani se tarkoittaa työnväenluokkataustasta keskiluokkaan.</p> <p>Se voi kuitenkin myös tarkoittaa loikkaa niin sanotusti &quot;alaspäin&quot;. Esimerkiksi keskiluokasta työväenluokkaan. En tahdo arvottaa loikkasuuntia, koska lopulta kyseessä on ajatus itsensä aidosta toteuttamisesta, mutta sillä tavoin asiasta saatetaan keskustella.</p> <p>Suomen kaltaisessa maassa luokkaloikkaaminen voikin olla tyypillistä, koska esimerkiksi kouluttautuminen on halpaa, eikä sitä rajoita olennaisesti vanhempien tulotaso, kuten muualla saattaisi olla.</p> <p>Kuten loikka toiseen maahan ja kulttuuriin edellyttää sopeutumista ja oman paikan löytämistä, niin myös luokkaloikka edellyttää niitä. Yhtäkkiä oletkin ympäristössä, jossa oppimasi käyttäytymismallit ja ajattelutavat eivät vastaakaan ympäröivää todellisuutta.</p> <p>Toisin kuin saatetaan yleisesti ajatella, luokkaloikka ei pelkästään liity tulotason muuttumiseen, vaan se elää meidän toiminnassamme ja kulttuurissamme.</p> <p>Tästä siis kirjoitin, mutta miten?</p> <h2 id="omien-kokemusten-ja-tutkimuksen-yhdistaminen" tabindex="-1">Omien kokemusten ja tutkimuksen yhdistäminen</h2> <p>Halusin lähestyä aihetta toisaalta omista kokemuksista lähtien, mutta myös tutkimuksen näkökulmasta. Halusin välttää pelkkää mutuilua - yhtään vähättelemättä omia kokemuksiani tai muiden.</p> <p>Yhteiskuntaluokista puhuminen Suomessa voi välillä herättää kärkkäitäkin mielipiteitä, koska Suomea pidetään tasavertaisten ja yhdenvertaisten mahdollisuuksien maana. Nämä asiat ovat kuitenkin omiaan synnyttämään juuri kaltaisiani ihmisiä: Työnväenluokasta keskiluokkaan ponnistaneita.</p> <p>Löysin <a href="https://uefconnect.uef.fi/henkilo/mari.kayhko/#information">Mari Käyhkön (uef.fi)</a>, joka on tehnyt tutkimusta työsläistaustaisten naisten luokkaloikkaamisesta yliopistoon. Otin häneen yhteyttä ja hän lähetti minulle muutaman tutkimusartikkelin luettavaksi. Suosittelen jokaista tutustumaan Marin tutkimukseen!</p> <p>Otin siis kirjoittamiseni pohjalle Marin tutkimusartikkeleita ja muistiinpanojeni pohjalta yhdistin teksteihin myös omia kokemuksiani. Halusin myös aina todeta, että en ole alan asiantuntija, mutta tarkastelin asioita, jotka kiinnostivat minua.</p> <h2 id="kirjoittamisen-kaava" tabindex="-1">Kirjoittamisen kaava</h2> <p>Kerroin omasta kokemuksestani, tiivistin Marin artikkelin sanoman ja kutsuin ihmisiä keskusteluun. Kerroin lopuksi, että millaisesta aineistosta on ollut kyse ja, että en ollut alan asiantuntija.</p> <p>Se toimi hyvin, koska oman kokemukseni lisäksi tutkimusartikkelit yleensä esittivät useampia polkuja, joita naiset olivat kokeneet. Sillä tavoin sain useampi ihminen sai tarttumapintaa kirjoituksistani.</p> <h2 id="suunnitelma-webinaarista" tabindex="-1">Suunnitelma webinaarista</h2> <p>Halusin tarjota yhteisöllisen kokemuksen niille, joille kirjoitukseni tuntuivat uppoavan siis ideoin webinaarin!</p> <p>Halusin, että webinaarissa oli edes jonkinlaista asiasisältöä, joten otin yhteyttä Mariin ja <a href="https://fi.wikipedia.org/wiki/Katriina_J%C3%A4rvinen">Katriina Järviseen (wikipedia.fi)</a>. Mari teki tutkimusta ja Katriina oli kirjoittanut, yhdessä Laura Kolben kanssa, kaksi kirjaa, jotka liittyivät luokkaloikkareihin. Heillä siis olisi varmasti jotain annettavaa! Onnekseni he nopeasti suostuivat puhujiksi webinaariin.</p> <p>Suunnittelin, että pidän webinaarin elokuun lopussa ja julkaisen yhden kirjoituksen viikossa eräänlaisena mainoksena sille. Yllätyin siitä, miten hidasta kirjoitusten tekeminen oli, mutta luin kuitenkin tutkimusartikkelin aina ennen kirjoittamista, mikä vei aikaa.</p> <p>Sen jälkeen tiivistin osan tutkimusartikkelin sanomasta ja lisäsin siihen omaa pohdintaani. Sain kuin sainkin kirjoitettua tekstejä ennen webinaaria.</p> <h2 id="webinaari" tabindex="-1">Webinaari</h2> <p>Webinaari järjestettiin Teamsissä, joka oli jo ennestään tuttu minulle töitteni puolesta. Ilmoittautumisia oli tullut noin 17 ja osallistujia oli lopulta 6. Lisäksi minä, Mari ja Katriina.</p> <p>Käsittelimme tilaisuuden alussa turvallisemman tilan periaatteet, miten tilaisuus etenee ja, että luvassa on myös pienryhmäkeskustelua.</p> <p>Kaiken kaikkiaan se meni hyvin! Meillä oli kaksi tuntia aikaa, missä Mari ja Katriina pitivät puheenvuoronsa, ja osallistujat pääsivät keskustelemaan pienryhmiin.</p> <p>Palautteet olivat ihania! Tilaisuus oli tarjonnut paikan yhteiselle keskustelulle ja reflektiolle omaa taustaa vasten. Pienryhmäkeskusteluun olisi toivottu lisää aikaa, joten tämä täytyy huomioida tulevissa tilaisuuksissa.</p> <h2 id="reflektio" tabindex="-1">Reflektio</h2> <p>Luokkaloikkarius ei ole asia, joka olisi koko ajan mielen päällä. Nyt se on jo jotain sellaista, johon on tottunut. Tiedostan, että elämäni on jollain tapaa erilaista kuin se on kasvaessani ollut, mutta kannan silti mukanani oppeja siltä ajalta.</p> <p>Erään osallistujan kanssa keskustellessani hän kertoi, että luokkaloikkarina oleminen tarjoaa meille ikään kuin kyvyn nähdä aidan molemmille puolille. Meidän tehtävämme on myös muistuttaa toisia siitä, että aita on edelleen olemassa ja huomioida se, kun sitä ollaan taas rakentamassa lisää.</p> <p>Tsekkaa kirjoitukseni <a href="/tags/luokkaloikkarit/">Luokkaloikkareista</a>.</p> Accessibility metadata and accessibility features, part 2 2022-10-01T12:37:19Z https://samimaatta.fi/en/accessibility-metadata-and-accessibility-features-part-2/ <p>This is a continuation to <a href="/blog/accessibility-metadata-and-accessibility-features-part-1">my previous post on accessibility features</a>.</p> <p>I am lifting a few relevant <code>accessibilityFeature</code> values from <a href="https://kb.daisy.org/publishing/docs/metadata/schema.org/index.html">schema.org's accessibility metadata</a> on <code>accessibilityFeature</code>s.</p> <p>You can check more in-depth explanation and code snippets on <a href="https://kb.daisy.org/publishing/docs/metadata/schema.org/accessibilityFeature.html#value">Daisy's definition on <code>accessibilityFeature</code></a>.</p> <h2 id="6-index" tabindex="-1">6. Index</h2> <p>Value <code>index</code> can be used if the publication has an index for the user. Prodiving an index makes it easier to navigate in a large publication.</p> <p>An index can be a list of words and where they appear or an index of related terms.</p> <h2 id="7-math-ml" tabindex="-1">7. MathML</h2> <p>Value <code>MathML</code> indicates that the publication uses MathML markup to encode mathematical content.</p> <p>Check out <a href="https://kb.daisy.org/publishing/docs/html/mathml.html#">MathML knowledge base</a> for in-depth stuff.</p> <h2 id="8-printed-page-numbers" tabindex="-1">8. Printed page numbers</h2> <p>Value <code>printPageNumbers</code> indicates that the publication has page breaks according to a printed book's page numbers.</p> <p>This is especially important at Celia, because almost all of the ebooks are based on printed books. It's common place to reference a book's contents according to its page numbers.</p> <h2 id="9-page-navigation-not-yet-implemented" tabindex="-1">9. Page navigation (not yet implemented)</h2> <p>Value <code>pageNavigation</code> would indicate that the publication has a page list.</p> <p>This hasn't been implemented yet (at the time of writing), but it would be useful. It is comparable to printed page numbers, but in the use case of purely digital publishing there really aren't any page numbers.</p> <p>People are so used to referencing books by their page numbers that even virtual ones would be really helpful.</p> <h2 id="10-linear-reading-order" tabindex="-1">10. Linear reading order</h2> <p>Value <code>readingOrder</code> tells the user that the publication has a logical reading order.</p> <p>Imagine a fixed layout page with content at different parts of the page. Depending on the markup it might appear to be logical, but for somebody using assistive techonologies the content might be all jumbled up.</p> <p>Providing correct reading order makes the content logical for any reader.</p> Accessibility metadata and accessibility features, part 1 2022-10-01T12:26:44Z https://samimaatta.fi/en/accessibility-metadata-and-accessibility-features-part-1/ <p>How can you add metadata about accessibility <strong>features</strong> in your website, ebook or any HTML-based digital product?</p> <p>A straightforward way is to use <a href="https://kb.daisy.org/publishing/docs/metadata/schema.org/index.html">schema.org's accessibility metadata</a> on <code>accessibilityFeature</code>s.</p> <p>You can check more in-depth explanation and code snippets on <a href="https://kb.daisy.org/publishing/docs/metadata/schema.org/accessibilityFeature.html#value">Daisy's definition on <code>accessibilityFeature</code></a>.</p> <p>I'm highlighting a few that are relevant to my job at the moment in particular about ebooks.</p> <h2 id="1-alternative-text" tabindex="-1">1. Alternative text</h2> <p>Value <code>alternativeText</code> can be used if your visuals (images, audio, video) have alternative texts. The key is that they should be adding to the information in the publication.</p> <p>Easy way to think about it: If you have non-empty, informative alt attributes then you should use <code>alternativeText</code> value!</p> <p>Remember that decorative images don't count towards this, since you should make their <code>alt</code> attributes empty: <code>alt=&quot;&quot;</code>.</p> <h2 id="2-long-descriptions" tabindex="-1">2. Long descriptions</h2> <p>Long or extended descriptions are intended for visual content that is too complex to be included in an alternative text. This basically means explaining a graph or a flow chart, so it is understood by the target audience.</p> <p>The difference between long descriptions and alternative texts can be small, but it is important.</p> <p>Think alternative texts as summaries of their visual contents. Long descriptions then are the actual contents or highlights of the most important parts of them.</p> <h2 id="3-aria" tabindex="-1">3. ARIA</h2> <p>Basically <code>ARIA</code> value means that you use <code>ARIA</code> roles in your publication. This is a can of worms in its own right, so go read notes on <a href="https://www.w3.org/TR/using-aria/#notes2"><code>ARIA</code> use in HTML</a>.</p> <h2 id="4-transforming-the-display" tabindex="-1">4. Transforming the display</h2> <p>Value <code>displayTransformability</code> means that the user is able to change the display of all text. For example the font family, font size or word spacing.</p> <p>This means that all text should be encoded as text - and not included only in images.</p> <p>In CSS terms it means not using absolute values for dimensions such as pixels or points, but em's and rem's.</p> <h2 id="5-high-contrast" tabindex="-1">5. High contrast</h2> <p>Value <code>highContrastDisplay</code> can be used if the contrast ratio is 7:1 between foreground text and the background. This also takes into account images with text.</p> <p>That's all for now!</p> Accessibility metadata and sufficient access modes, part 2 2022-10-01T12:10:31Z https://samimaatta.fi/en/accessibility-metadata-and-sufficient-access-modes-part-2/ <p>Continuing accessibility metadata post with sufficient access modes. <a href="/accessibility-metadata-and-sufficient-access-modes-part-1/">Previous part about sufficient access modes</a>.</p> <p>Luckily you can use <a href="https://kb.daisy.org/publishing/docs/metadata/schema.org/index.html">schema.org's accessibility metadata</a> to easily do just that.</p> <p>In this context a sufficient access mode means that you can access <strong>all of the content</strong> in the described ways (for code snippets go to <a href="https://kb.daisy.org/publishing/docs/metadata/schema.org/accessModeSufficient.html">Daisy's definition of accessModeSufficient</a>).</p> <h2 id="5-textual-auditory" tabindex="-1">5. Textual, auditory</h2> <p>If we are being strict and saying this is the only sufficient access mode for the publication, it means that you absolutely need the text and the audio together.</p> <p>This might be a study material that has is about data sonification and with samples. It would have text describing the sonification and audio examples of them.</p> <h2 id="6-auditory-visual" tabindex="-1">6. Auditory, visual</h2> <p>In a strict sense, I am imagining a children's book with colorful images and audio about the story. Then you would need both the audio and the images.</p> <p>If the publication also had a sufficient access mode of &quot;visual&quot; then that would mean that the audio isn't actually needed to understand the contents. For example, it would just be a description of the images in audio format.</p> <h2 id="7-textual-auditory-visual" tabindex="-1">7. Textual, auditory, visual</h2> <p>If this was the only sufficient access mode then it would be a publication that has videos in it without any accessibility features such as captions, audio descriptions or such. So, it would basically be old school Youtube.</p> <h2 id="wrapping-it-up" tabindex="-1">Wrapping it up</h2> <p>You can have multiple different sufficient access modes. If you have individual sufficient access modes of textual and visual, then you also have a sufficient access mode of textual + visual.</p> <p>If you only have a sufficient access mode of textual + visual, you don't necessarily have sufficient access modes for textual and visual separately.</p> <p>Did you get it? Are you going to use them?</p> <p>Let me know and share with somebody who might find this useful!</p> Accessibility metadata and sufficient access modes, part 1 2022-10-01T11:17:00Z https://samimaatta.fi/en/accessibility-metadata-and-sufficient-access-modes-part-1/ <p>You should definitely add accessible metadata to your website or ebook!</p> <p>Luckily you can use <a href="https://kb.daisy.org/publishing/docs/metadata/schema.org/index.html">schema.org's accessibility metadata</a> to easily do just that.</p> <p>Last time I wrote about access modes, and now I have things about sufficient access modes.</p> <p>In this context a sufficient access mode means that you can access all of the content in the described ways (for code snippets go to <a href="https://kb.daisy.org/publishing/docs/metadata/schema.org/accessModeSufficient.html">Daisy's definition of accessModeSufficient</a>).</p> <p>Just a heads up: This might a bit more complicated to understand (and even I am just making sense of this), so don't be afraid to ask and discuss!</p> <p>So, let's go over different possibilities with 3 access modes: Textual, auditory and visual.</p> <h2 id="1-textual" tabindex="-1">1. Textual</h2> <p>If the sufficient access mode is only text, then it means that all of the content in your publication has to be accessible by text.</p> <p>Notice the difference compared to a mere access mode: Including &quot;textual&quot; as an access mode meant that the page has some text. Being sufficient access mode means that all of the information has to be in text in some way.</p> <p>This is easy if your publication is all text. Then it indeed is the sufficient access mode to get all the information in your publication.</p> <p>If you publication has images, but you have added alternative text or long descriptions to them then &quot;textual&quot; is also a sufficient access mode to your content.</p> <h2 id="2-auditory" tabindex="-1">2. Auditory</h2> <p>If all of the content is in audio format then this is for you. Publications that could fit this definition are audiobooks or podcasts.</p> <p>Remember that if you have a possibility to listen the contents of your publication, it should be for all of the content. If the audio version skips images or doesn't describe them, then &quot;auditory&quot; isn't a sufficient access mode to your content.</p> <h2 id="3-visual" tabindex="-1">3. Visual</h2> <p>I imagine a children's image book or an infographic with this one. If all of the content requires sight and it's not in any other format then &quot;visual&quot; fits the bill.</p> <p>If the publication has images and text in-between explaining them, then all of the content isn't accessible by visuals only.</p> <h2 id="4-textual-visual" tabindex="-1">4. Textual, visual</h2> <p>This is your basic printed book, ebook or website. You get information from the text as well as the images.</p> <p>You can also provide all of the information through text with alternative text or long descriptions, but it is not necessary for using these values.</p> <p>This is it for this time! I will continue this list next time.</p> <p>With 3 elements you can generate 7 different combinations when not counting the empty set, so there's still 3 more combinations to get to!</p> Accessibility metadata and access modes 2022-10-01T10:23:50Z https://samimaatta.fi/en/accessibility-metadata-and-access-modes/ <p>Should you add accessibility metadata to your website or digital publication?</p> <p>Well, yeah. It helps to &quot;to enable discovery no matter how the publication is distributed or consumed.&quot;</p> <p>Introducing <a href="https://kb.daisy.org/publishing/docs/metadata/schema.org/index.html">schema.org's accessibility metadata</a> step-by-step.</p> <p>(Here I talk about websites and digital books as &quot;publications&quot;.)</p> <p>Access modes describe in which ways your publication's content can be accessed (for code examples go to <a href="https://kb.daisy.org/publishing/docs/metadata/schema.org/accessMode">Daisy's definition of accessMode</a>).</p> <h2 id="textual" tabindex="-1">Textual</h2> <p>If you define your publication to be &quot;textual&quot; it means that the content is at least partly in text.</p> <p>You wouldn't use &quot;textual&quot; property at all if you had a portfolio or art showcase page without text.</p> <h2 id="visual" tabindex="-1">Visual</h2> <p>Use this if the publication has &quot;images, graphics or video&quot; and it is relevant to understand the content of the page. If you only have decorative images then don't use this property.</p> <p>So, use when you talk reference the image or it's a flow chart that adds to the content on the page.</p> <h2 id="auditory" tabindex="-1">Auditory</h2> <p>Similar with images: If the audio adds to the information on the page, then you should use this property.</p> <p>If you have one of those websites that have &quot;soothing nature sounds&quot; in the background, this is not for you. Except if the site is about wild life in Canada and you play a recording of that!</p> <h2 id="tactile" tabindex="-1">Tactile</h2> <p>Do you have an accompanying piece of tactile material with your publication? Probably not.</p> <p>Although, you can use &quot;tactile&quot; property if you happen to have braille-formatted text in the publication (for example a visual representation of the braille letters in Unicode). Using a braille display doesn't count as your publication being &quot;tactile&quot;.</p> <p>Have you used these? Are you going to now?</p> <p>Share with those who would benefit!</p> Verifying a video from social media 2022-09-28T00:00:00Z https://samimaatta.fi/en/verifying-a-video-from-social-media/ <p>Having read Eliot Higgins’s “We are Bellingcat” (which is a capticating book to any Sherlock Holmes fan!), I wanted to test out some of their methodology. I mainly used the information gathered on <a href="https://www.bellingcat.com/resources/2021/11/01/a-beginners-guide-to-social-media-verification/">Bellingcat’s Beginner’s Guide to Social Media Verification</a>.</p> <p>I followed their handy flow chart on the steps that you should take while doing verification:</p> <figure> <figcaption>A verification checklist from Bellingcat’s website.</figcaption> <picture><source type="image/webp" srcset="/img/XeievFoLWc-768.webp 768w"><img loading="lazy" decoding="async" alt="Bellingcat's investigation flowchart." src="/img/XeievFoLWc-768.jpeg" width="768" height="595"></picture> </figure> <ol> <li>Originality: Was the image or video used before?</li> <li>Who? Who is the source of the photo or video online?</li> <li>Where? Where was the photo or video taken?</li> <li>When? When was the photo or video captured?</li> <li>Why? Why was it captured?</li> </ol> <h2 id="the-social-media-piece-to-be-verified" tabindex="-1">The social media piece to be verified</h2> <p>While browsing Twitter I saw a tweet about a Russian missile attack to Vinnytsia, Ukraine by Hanna Liubakova. It contained a video of the aftermath, and it showed a city square covered in black smoke. They referenced a local media report.</p> <div class="eleventy-plugin-embed-twitter"><blockquote id="tweet-1547504989257568256" class="twitter-tweet"><a href="https://twitter.com/HannaLiubakova/status/1547504989257568256"></a></blockquote></div><script src="https://platform.twitter.com/widgets.js" charset="utf-8" async></script> <p>So, there were a couple of things that you could be thinking of the video based on the tweet.</p> <ol> <li>Where exactly was the video from? Is the alleged place (Vinnytsia, Ukraine) correct?</li> <li>When was the video taken?</li> </ol> <p>Let’s go by checklist’s steps.</p> <h2 id="1-originality-was-the-image-or-video-used-before" tabindex="-1">1. Originality: Was the image or video used before?</h2> <p>If the video was used before, I couldn’t really tell. I am not aware of any “reverse video searches” that could be done. So, in this case I decided not to use too much time on it. I also thought that it might come up later on some other points in the list.</p> <p>Result: Inconclusive.</p> <h2 id="2-who-who-is-the-source-of-the-video" tabindex="-1">2. Who: Who is the source of the video?</h2> <p>Hanna Liubakova, who is a Belarusian journalist. On their <a href="https://twitter.com/HannaLiubakova">Twitter handle @HannaLiubakova</a>, it shows that they have more than 100k followers, which could be seen to add to their credibility.</p> <p>They also have a <a href="https://en.wikipedia.org/wiki/Hanna_Liubakova">Wikipedia page Hanna Liubakova</a>, which details how they have been pro-Ukraine and against Russia’s attack on Ukraine. They are not afraid to show it and have actually been driven to flee, because of Belarus’s president Alexander Lukashenko, who is close to Putin’s Russia.</p> <p>So, based on these points and the tweet’s line “I wrote yesterday about Russia being a terrorist state. Every day, we see evidence”, I could deduce that they have a motive to highlight Russia’s crimes against the Ukrainian people. They seem like an actual person.</p> <p>I could probably find more evidence such as a youtube video to link them specifically to the Twitter handle.</p> <p>Result: Believable and most likely that the person if legit.</p> <h2 id="3-where-where-was-the-video-taken-geolocation" tabindex="-1">3. Where: Where was the video taken? (Geolocation)</h2> <p>Allegedly in Vinnytsia, Ukraine based only on the tweet’s text: “Russia attacked Vinnytsia, #Ukraine.”</p> <p>From the video I captured two landmarks, which seemed notable to me.</p> <ol> <li>A statue of an airplane, which might make it easy to find the exact location (Picture 1.).</li> <li>A billboard with illegible text (which didn’t prove too useful) (Picture 2.).</li> </ol> <p>Next to flag pole with Ukraine's flag, there is a airplane tipped slightly upwards with two arcs around it.</p> <figure> <figcaption>Picture 1. Statue of an airplane.</figcaption> <picture><source type="image/webp" srcset="/img/s-tFNHNzu8-105.webp 105w"><img loading="lazy" decoding="async" alt="Grainy video screenshot of an airplane statue." style="width:10rem" src="/img/s-tFNHNzu8-105.jpeg" width="105" height="89"></picture> </figure> <p>Billboard with an illegible header and text. It has a white background that's slashed by a triangle-shaped area of green. There is also a red textbox.</p> <figure> <figcaption>Picture 2. Billboard with an ad.</figcaption> <picture><source type="image/webp" srcset="/img/x9mduC6QBM-93.webp 93w"><img loading="lazy" decoding="async" alt="Grainy video screenshot of a billboard." style="width:10rem" src="/img/x9mduC6QBM-93.jpeg" width="93" height="103"></picture> </figure> <h3 id="just-going-to-google-a-few-things" tabindex="-1">Just going to google a few things</h3> <p>Now we have some landmarks to find. I tried to find it simply by searching with terms “vinnytsia plane statue”. It returned a <a href="https://www.tripadvisor.com/ShowUserReviews-g940873-d3316863-r641562733-Monument_in_Honour_of_Ukraine_Air_Force_Creation-Vinnytsia_Vinnytsia_Oblast.html#REVIEWS">Tripadvisor review</a> on a monument named “Monument in Honour of Ukraine Air Force Creation.” This seemed promising.</p> <p>Moving on from the Tripadvisor review the monument should be located in Peremohy Square, which on the eastern side of the river going through Vinnytsia. The statue should depict a MiG-21 fighter jet.</p> <p>I googled the name of the monument and found a <a href="https://commons.wikimedia.org/wiki/File:MiG-21_Vinnitsa_2010_G2.jpg">Wikimedia entry about the MiG-21 fighter jet statue (image not described)</a>. You can locate it in Google Maps view by searching for the name of the monument (picture 3). It is also in the Peremohy Square and “Peremohy” means “Victory”. There are other squares in Ukrainian cities named the same – for example in <a href="https://www.google.com/maps/place/Peremohy+Square,+Kyiv,+Ukraine,+02000/@50.4465719,30.4930171,17z/data=!3m1!4b1!4m5!3m4!1s0x40d4ce8b3fbbf2d7:0xf55d575f2da77f47!8m2!3d50.4465719!4d30.4930171?shorturl=1">Kyiv (Peremohy square, Google maps)</a>. Monument in Honour of Ukraine Air Force Creation and near House of Officer's, a concert hall. Behind it an office building. It is near a large street conjunction.</p> <figure> <figcaption>Picture 3. Google Map view of the monument’s location.</figcaption> <picture><source type="image/webp" srcset="/img/u37q_GoIDf-750.webp 750w"><img loading="lazy" decoding="async" alt="The monuments is to the west of the intersection of Kotsyubyns'koho Avenue and Zamostianska Street. To the south there is House of Officer's concert hall." src="/img/u37q_GoIDf-750.jpeg" width="750" height="635"></picture> </figure> <p>In addition, let’s compare the video footage (picture 4) and Google street view (picture 5). We can see that they are the same place. Monument in Honour of Ukraine Air Force Creation and behind it a partly destroyed office building covered in black smoke.</p> <figure> <figcaption>Picture 4. Screenshot of the video footage.</figcaption> <picture><source type="image/webp" srcset="/img/IIVRfQNM-Q-292.webp 292w"><img loading="lazy" decoding="async" alt="A building covered black smoke with people walking in forefront. The airplane monument is on the left and in front of the building. The shot is from the street." src="/img/IIVRfQNM-Q-292.jpeg" width="292" height="360"></picture> </figure> <p>Monument in Honour of Ukraine Air Force Creation and behind it an office building that's intact. On the left a glimpse of the House of Officers, a concert hall.</p> <figure> <figcaption>Picture 5. Google Maps street view of the same place as in the video.</figcaption> <picture><source type="image/webp" srcset="/img/9aHEICeOJp-768.webp 768w"><img loading="lazy" decoding="async" alt="Same building as in picture 4, but without smoke. The square is visible with the airplane monument and people walking in the streets." src="/img/9aHEICeOJp-768.jpeg" width="768" height="503"></picture> </figure> <h3 id="results-of-geolocation" tabindex="-1">Results of geolocation</h3> <p>The location is correct and it’s Vinnytsia, Ukraine.</p> <p>More accurately it’s near the “Monument in honor of the Air Forces of Ukraine” at the Peremohy Square. The video was captured from the street of Kotsyubyns’koho Ave, and from the southern or southeastern side of the monument. You can check the specific <a href="https://www.google.com/maps/@49.2387676,28.4925352,3a,75y,350.78h,92.58t/data=!3m6!1e1!3m4!1sbLHka7v_CInbPWlxiKLbqA!2e0!7i13312!8i6656?shorturl=1">Google street view of Kotsyubyns’koho Ave</a>.</p> <p>Near it is House of Officers’, which is a concert hall. Behind it is the office building that was hit.</p> <h2 id="4-when-when-was-the-video-captured-chronolocation" tabindex="-1">4. When: When was the video captured? (Chronolocation)</h2> <p>For this I used Chronolocation guide by the user Sector035 (Medium post), since the original guide didn’t go much into the details on how to do it.</p> <p>There are a couple of ways to figure out when the event took place.</p> <p>There was no claim on when the even took place in the original tweet, so nothing from there. We can look at the posting date (14th of July) and considering that there wasn’t any news about it earlier than this day (the 14th of July 2022), one could assume that it was very recent. The weather</p> <p>From the video it was obvious that it happened in daytime. The sky was partly cloudy and blue (picture 6). What about a specific date or the time in day?</p> <figure> <figcaption>Picture 6. Video footage. Sky is partly cloudy. Black smoke on the right side of the screen.</figcaption> <picture><source type="image/webp" srcset="/img/YHauPwCEp4-290.webp 290w"><img loading="lazy" decoding="async" src="/img/YHauPwCEp4-290.jpeg" alt="Screenshot of the video." width="290" height="165"></picture> </figure> <p>Looking at the historical weather data from <a href="https://www.timeanddate.com/">timeanddate.com</a>, we could take a look at Vinnytsia’s weather from the past days (picture 7).</p> <figure> <figcaption>Picture 7. Vinnytsia’s weather from 10th of July to 14th of July.</figcaption> <picture><source type="image/webp" srcset="/img/kD2ZmI5XGf-769.webp 769w"><img loading="lazy" decoding="async" alt="Weather during the day in July. 10th: partly cloudy to cloudy. 11th: partly cloudy. 12th: partly cloudy to cloudy. 13th: heavy overcast. 14th: partly cloudy." src="/img/kD2ZmI5XGf-769.jpeg" width="769" height="340"></picture> </figure> <p>This doesn’t give us much: It couldn’t have been the 13th, since it was heavily overcast. It could have been some other day in the same week. I am leaning towards the 14th, because the news would have been out way before if it had happened before.</p> <h3 id="time-of-day" tabindex="-1">Time of day</h3> <p>Anyway, let’s continue to try to figure out the time of day. The video footage is low resolution, but on some parts of the video, you can see shadows are cast away from the camera (picture 8). If you check the video yourself, it might be easier to notice. A pedestrian roughly casts a shadow to north or northwest.</p> <figure> <figcaption>Picture 8. Shadow is roughly cast by a pedestrian.</figcaption> <picture><source type="image/webp" srcset="/img/iwWM92rOR7-97.webp 97w"><img loading="lazy" decoding="async" alt="Grainy screenshot of a video. Pedestrian's shadow roughly falls north or northwest. The shadow is very unclear." style="width:9rem" src="/img/iwWM92rOR7-97.jpeg" width="97" height="117"></picture> </figure> <p>If the shadow is cast to the north or northwest, it means that the sun is in the opposite direction of south or southeast. We have to notice that the street, where the video was taken is actually at an angle to the monument. It is in such an angle that the shadows appear to be slightly more to the north than they actually are. This means that the time in video is more likely on the morning side than noon, so I would guess 9-12 – maybe closer to 12 than 9.</p> <p>Result: Most likely it happened on the 14th of July and at around 9-12 o’clock.</p> <h2 id="5-why-why-was-the-video-captured" tabindex="-1">5. Why: Why was the video captured?</h2> <p>The video was most likely taken to show the aftermath of the strike and how it has affected a central part of a city, where civilians are. It has been further circulated (news and the tweet) to highlight Russia’s actions against Ukraine. Retrospective: How did I do?</p> <p>I am going to compare my findings to a Ukrainian <a href="https://www.pravda.com.ua/eng/">news website Pravda (English version)</a> and their news article <a href="https://www.pravda.com.ua/eng/news/2022/07/14/7358046/">Russians hit the centre of Vinnytsia with rockets... (Pravda)</a>.</p> <p>The news article specifies the time when the missile strike was reported and confirmed, which was at 11:20 (quote 1).</p> <blockquote> <p>Head of Vinnytsia Oblast Serhii Borzov confirmed at 11:20: “We have had a missile ‘arrival’ in Vinnytsia.”</p> <p>Quote 1. <a href="https://www.pravda.com.ua/eng/news/2022/07/14/7358046/">Russians hit the centre of Vinnytsia with rockets... (Pravda)</a></p> </blockquote> <p>The specific location wasn’t disclosed, but the article mentions the Officers’ House concert hall, which I determined to be at the scene (quote 2).</p> <blockquote> <p>The Officers’ House and nearby residential buildings have also been damaged.”</p> <p>Quote 2. <a href="https://www.pravda.com.ua/eng/news/2022/07/14/7358046/">Russians hit the centre of Vinnytsia with rockets... (Pravda)</a></p> </blockquote> <p>It truly was at the monument.</p> <p>I found the exact location and also did pretty well on the time estimation. Even though I couldn’t really be sure of the date, because the weather was the same for many days. Although seeing the many news articles that have come of the event, I can be sure that it happened on the 14th of July 2022.</p> <h2 id="final-thoughts-for-now" tabindex="-1">Final thoughts for now</h2> <p>This is not a happy post. Russia’s attack on Ukraine is condemned by Finland and by its citizens – including me.</p> <p>What I have done shows that it truly is possible for a layman to be doing fact checking based on open sources and the internet. It requires that one is rigorous in their methodology and first and foremost open how they did it. You should see the breadcrumb of sources that I have listed and also check them for yourself.</p> <p>What could I have done better?</p> <ul> <li>The background check on the original tweet. I pretty much glossed over that.</li> <li>Specific date and time of the video wasn’t very rigorous – especially discussion about the angle of the shadows. The <a href="https://medium.com/quiztime/lining-up-shadows-2351ae106cec">Chronolocation guide by the user Sector035 (Medium post)</a> gives you much more information.</li> <li>In the end I trusted a news article to check how I had done, but I let that slide, because this is firstly an exercise to see if it can be done.</li> </ul> <p>Please check out <a href="https://twitter.com/EliotHiggins">Eliot Higgins (Twitter)</a> and his book “We are Bellingcat”. It really is that good.</p> Building blocks for my first Eleventy site 2022-08-30T00:00:00Z https://samimaatta.fi/en/building-blocks-for-my-first-eleventy-site/ <p>I started using Eleventy mainly, because <a href="https://eevis.codes">eevis.codes</a> used it for her site! Go check it out. She posts great stuff about accessibility (and knitting)!</p> <p>Originally I used Wordpress, but felt held back by the UI. I wanted to have the possibility of doing custom HTML more easily.</p> <h2 id="adding-id-s-to-headings" tabindex="-1">Adding id's to headings</h2> <p>I want to be able to use anchor links, so I made it possible to generate id's for headings in Markdown.</p> <p>For this I used <a href="https://humanwhocodes.com/snippets/2020/07/eleventy-heading-ids/">Humanwhocodes's post &quot;Eleventy headings ids&quot;</a>:</p> <p>Include the code below into .eleventy.js file:</p> <pre class="language-js"><code class="language-js"><span class="token comment">// this works because Eleventy also installs markdown-it</span><br><span class="token keyword">const</span> markdownIt <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">"markdown-it"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><br><span class="token comment">// create a new markdown-it instance with the plugin</span><br><span class="token keyword">const</span> markdownItAnchor <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">"markdown-it-anchor"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token keyword">const</span> markdownLib <span class="token operator">=</span> <span class="token function">markdownIt</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">html</span><span class="token operator">:</span> <span class="token boolean">true</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>markdownItAnchor<span class="token punctuation">)</span><span class="token punctuation">;</span><br><br><span class="token comment">// replace the default markdown-it instance</span><br>eleventyConfig<span class="token punctuation">.</span><span class="token function">setLibrary</span><span class="token punctuation">(</span><span class="token string">"md"</span><span class="token punctuation">,</span> markdownLib<span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> <h2 id="language-setting" tabindex="-1">Language setting</h2> <p>Sometime I might post in Finnish, so I want to have an option to do so. That's why I added a <code>lang</code> attribute to the <code>main</code> section on my blog posts. I have two choices</p> <ol> <li>I can omit it and the overall side language takes over (which is English) or</li> <li>I can include <code>lang=&quot;fi&quot;</code> in the frontmatter and it will change the blog post's language to Finnish (for example).</li> </ol> <p>The code looks like this: <code>&lt;main {{ lang }} id=&quot;main&quot;&gt;</code> (I id the <code>main</code>, so I can add &quot;skip to content&quot; link later.)</p> <h2 id="teasers-and-excerpts" tabindex="-1">Teasers and excerpts</h2> <p>You can include teasers in your blog posts. So, I did that. Should it just be the first paragraph of the blog post? Might be easier. Or two first sentences?</p> <p>How to do this? Include <code>teaser: [teaser text]</code> in your front matter.</p> <p><strong>Update</strong>: I actually didn't use the technique above. I wanted for the site generate the blog excerpt by itself. For this I followed <a href="https://www.jonathanyeong.com/garden/excerpts-with-eleventy/">Jonathan Yeon's &quot;Excerpts wit Eleventy&quot;</a> and modified it a bit to work with language tag properly. My issue being that I post in English and in Finnish.</p> <p>I already got the posts tagged properly, but excerpts didn't have proper language tags. I had to change how the JavaScript function produces the excerpt <code>if</code> the blog has a <code>lang</code> property in the front matter. Then it also includes the <code>lang=&quot;fi&quot;</code> attribute for the excerpt.</p> <p>Code that I used from Jonathan Yeong's post (and modified):</p> <pre class="language-js"><code class="language-js"><span class="token keyword">function</span> <span class="token function">extractExcerpt</span><span class="token punctuation">(</span><span class="token parameter">article</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><br> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span>article<span class="token punctuation">.</span><span class="token function">hasOwnProperty</span><span class="token punctuation">(</span><span class="token string">"templateContent"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><br> console<span class="token punctuation">.</span><span class="token function">warn</span><span class="token punctuation">(</span><br> <span class="token string">'Failed to extract excerpt: Document has no property "templateContent".'</span><br> <span class="token punctuation">)</span><span class="token punctuation">;</span><br> <span class="token keyword">return</span> <span class="token keyword">null</span><span class="token punctuation">;</span><br> <span class="token punctuation">}</span><br><br> <span class="token keyword">let</span> excerpt <span class="token operator">=</span> <span class="token keyword">null</span><span class="token punctuation">;</span><br> <span class="token keyword">const</span> content <span class="token operator">=</span> article<span class="token punctuation">.</span>templateContent<span class="token punctuation">;</span><br> <span class="token keyword">const</span> lang <span class="token operator">=</span> article<span class="token punctuation">.</span>data<span class="token punctuation">.</span>lang<span class="token punctuation">;</span><br><br> excerpt <span class="token operator">=</span> <span class="token function">striptags</span><span class="token punctuation">(</span>content<span class="token punctuation">)</span><br> <span class="token punctuation">.</span><span class="token function">substring</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">150</span><span class="token punctuation">)</span> <span class="token comment">// Cap at 150 characters</span><br> <span class="token punctuation">.</span><span class="token function">replace</span><span class="token punctuation">(</span><span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">^\s+|\s+$|\s+(?=\s)</span><span class="token regex-delimiter">/</span><span class="token regex-flags">g</span></span><span class="token punctuation">,</span> <span class="token string">""</span><span class="token punctuation">)</span><br> <span class="token punctuation">.</span><span class="token function">trim</span><span class="token punctuation">(</span><span class="token punctuation">)</span><br> <span class="token punctuation">.</span><span class="token function">concat</span><span class="token punctuation">(</span><span class="token string">"..."</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><br> <span class="token keyword">if</span> <span class="token punctuation">(</span>lang<span class="token punctuation">)</span> <span class="token punctuation">{</span><br> excerpt <span class="token operator">=</span> <span class="token string">"&lt;p "</span> <span class="token operator">+</span> lang <span class="token operator">+</span> <span class="token string">">"</span> <span class="token operator">+</span> excerpt <span class="token operator">+</span> <span class="token string">"&lt;/p>"</span><span class="token punctuation">;</span><br> <span class="token punctuation">}</span><br><br> <span class="token keyword">return</span> excerpt<span class="token punctuation">;</span></code></pre> <h2 id="adding-pagination" tabindex="-1">Adding pagination</h2> <p>So, not all of the posts are visible in one sitting. Not sure how to do this yet.</p> <p><strong>Update 1</strong>: Pagination still doesn't work...</p> <p><strong>Update 2</strong>: So, yeah. The problem was that I used <code>reverse</code> in the function that produced the list of my posts in the <code>for</code> loops: <code>{% for post in posts %}</code>.</p> <p>What fixed it was to remove the <code>reverse</code> from the loop and just add <code>reverse</code> to the front matter of my blog page. This allowed the pagination to work properly.</p> <h2 id="deploying-with-netlify" tabindex="-1">Deploying with Netlify</h2> <p>When I do this, I will probably follow <a href="https://www.youtube.com/watch?v=i9qCmQ2EeUA0">Kevin Powell's instructions on Youtube</a>.</p> <p><strong>Update</strong>: Actually I'm using <a href="https://codingthesmartway.com/building-a-blog-with-eleventy-and-netlify-cms-part-3-managing-blog-content-with-netlify-cms/">CodingTheSmartWay's blog post on managing blog content with Netlify</a>.</p> <h2 id="adding-a-hidden-skip-to-content-link-to-the-top-of-the-page" tabindex="-1">Adding a hidden &quot;skip to content&quot; link to the top of the page</h2> <p>I followed <a href="https://css-tricks.com/how-to-create-a-skip-to-content-link/#maincontent">Paul Ryan's instructions on css-tricks</a>.</p> <p>I noticed that I had to translate by 105 %, since the edge of the box was poking out from above.</p> <p>I also had to ditch my <code>margin: 5%;</code> from the body. Have to figure that out.</p> <h2 id="support-for-date-time-stuff-with-luxon" tabindex="-1">Support for dateTime stuff with Luxon</h2> <p>I just followed the <code>npm install</code> -route from <a href="https://moment.github.io/luxon/#/install">Luxon</a>.</p> <p>You cannot believe how hard of a time I had implementing this...</p> <p>But I finally got it working!</p> <p>I used Luxon's docs to help me format the date into the format we use in Finland.</p> <p>Here is the code for that</p> <pre class="language-js"><code class="language-js">eleventyConfig<span class="token punctuation">.</span><span class="token function">addFilter</span><span class="token punctuation">(</span><span class="token string">"postDate"</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">dateObj</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><br> <span class="token keyword">return</span> DateTime<span class="token punctuation">.</span><span class="token function">fromJSDate</span><span class="token punctuation">(</span>dateObj<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toFormat</span><span class="token punctuation">(</span><span class="token string">"&lt;strong>d.L.yyyy&lt;/strong>"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> <p>I was wondering if I should try to display the date in other languages based on the langauge of the post.</p> <p>Now I also want to display the publication date <strong>after</strong> the blog post's heading, but this can't really be done in a straighforward way with a layout... I have to investigate!</p> <p><strong>Update</strong>: I used use Nunjucks's <code>extends</code> which I already use to display <code>h1</code> headings on individual pages.</p> <h2 id="generating-the-main-navigation-and-implementing-aria-current" tabindex="-1">Generating the main navigation and implementing <code>aria-current</code></h2> <p>I followed a guide from <a href="https://www.youtube.com/watch?v=rZyNBd1WgVM">Mike Aparicio on &quot;Templating: Eleventy's super power&quot; (Youtube)</a>.</p> <p>I did two things</p> <ol> <li>used Nunjucks functions to render the navigation iteratively and</li> <li>implemented <code>aria-current</code> that tells the user which page they are on.</li> </ol> <p>I had some difficulties getting the <code>.json</code> to work properly with navigation items, but it finally worked!</p> <h2 id="using-prism-js-to-syntax-highlight" tabindex="-1">Using prism.js to syntax highlight</h2> <p>Including prism.js is pretty straighforward since there is a resource for that too! Just follow <a href="https://www.11ty.dev/docs/plugins/syntaxhighlight/">11ty's own instructions on the syntac highlighting plugin</a>.</p> <p>I just noticed that the background of the code template isn't accessible with comments' font color, so I have to fiddle with that stuff.</p> <h2 id="messing-around-with-the-css" tabindex="-1">Messing around with the CSS</h2> <p>So, much to learn...</p> <p>I want to</p> <ol> <li>change my headings' size, so they would be bigger and pop up from the text more, they should also have more space before and after</li> <li>include the &quot;#&quot; to copy anchor links for my posts, it seems cool!</li> <li>make everything nice and center, I seem to have to learn <code>flexbox</code> for this.</li> <li>find a good font set to use for the site. I like this one, but I feel like it should have more of an !umph! to it.</li> <li>decide on the color scheme.</li> </ol> <p>I reminded myself how <code>em</code> and <code>rem</code> work by reading <a href="https://blog.logrocket.com/using-em-vs-rem-css/#:~:text=em%20is%20a%20CSS%20unit,relative%20to%20a%20set%20value.">Lawrence Eagles's &quot;Using em vs. rem in CSS on LogRocket</a></p> <p>Still not totally sure how they work, but they are relative!</p> <h2 id="getting-reverse-filter-working-on-the-post-list" tabindex="-1">Getting <code>reverse</code> filter working on the post list</h2> <p>My problem was that I wasn't actually using Nunjucks as my templating language, since Eleventy uses Liquid by default. This led to my function's filter not working at all.</p> <p>I changed my <code>.eleventy.js</code> configuration to such:</p> <pre class="language-json"><code class="language-json">return <span class="token punctuation">{</span><br> dir<span class="token operator">:</span> <span class="token punctuation">{</span><br> input<span class="token operator">:</span> <span class="token string">"src"</span><span class="token punctuation">,</span><br> output<span class="token operator">:</span> <span class="token string">"public"</span><span class="token punctuation">,</span><br> <span class="token punctuation">}</span><span class="token punctuation">,</span><br> templateFormats<span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"md"</span><span class="token punctuation">,</span> <span class="token string">"njk"</span><span class="token punctuation">,</span> <span class="token string">"html"</span><span class="token punctuation">]</span><span class="token punctuation">,</span><br> markdownTemplateEngine<span class="token operator">:</span> <span class="token string">"njk"</span><span class="token punctuation">,</span><br> htmlTemplateEngine<span class="token operator">:</span> <span class="token string">"njk"</span><span class="token punctuation">,</span><br> dataTemplateEngine<span class="token operator">:</span> <span class="token string">"njk"</span><span class="token punctuation">,</span><br> <span class="token punctuation">}</span>;</code></pre> <p>And it works!</p> <p><strong>Update</strong>: I detailed earlier that I shouldn't have used this, so now it's been changed to normal flow.</p> <h2 id="adding-language-filtering-for-posts" tabindex="-1">Adding language filtering for posts</h2> <p>If nothing else has been developed then I have to follow instructions laid out here: <a href="https://github.com/11ty/eleventy/issues/504">https://github.com/11ty/eleventy/issues/504</a>.</p> <h2 id="css-for-readability" tabindex="-1">CSS for readability</h2> <p>I want to check out <a href="https://piccalil.li/tutorial/improve-the-readability-of-the-content-on-your-website/">Andy Bell's &quot;Improve the readability of the content on your website&quot;</a> for CSS tips - especially about creating more space between content.</p> <p>Not all of it is something I want to incorporate, so I have to go through it with time.</p> <h2 id="pagination" tabindex="-1">Pagination</h2> <p>I will use <a href="https://shivjm.blog/when-to-use-pagination-in-eleventy/">Shiv's instructions</a> on this.</p> <p><strong>Update</strong>: Apparently it's really important you use the <code>alias: posts</code> when referring to <code>collections.post</code>. I couldn't get it working until I included it in the front matter.</p> <p>Now the pagination works (with 5 posts per page) and you can move between pages that show posts! The hiccup now is that they are out of order... I think this is mainly Netlify CMS's fault on how it dates posts, so I have to look into that.</p> <p><strong>Update 2</strong>: This is embarrasing... If I had just read the documentation on Eleventy's site on <a href="https://www.11ty.dev/docs/pagination/#modifying-the-data-set-prior-to-pagination">&quot;Modifying the data set prior to pagination&quot;</a>, I would have understood that you shouldn't reverse the whole <code>collections.post</code>, but use <code>reverse: true</code> in the blog's <code>index</code> file. Well, now it's sorted.</p> <h2 id="excerpts" tabindex="-1">Excerpts</h2> <p>I added excerpts to be shown on the blog page, so the reader can have a taste of the contents before committing to reading it. I followed <a href="https://www.jonathanyeong.com/garden/excerpts-with-eleventy/">Jonathan Yeong's instuctions on excerpts</a> and I got it working!</p> <p>Now that I think about it, it might cause a problem if I want to use a table of contents for each post, since that would be the first text on each post. Maybe I can get the function to ignore the table of contents somehow.</p> <h2 id="screen-reader-only-text" tabindex="-1">Screen reader only text</h2> <p>I already used screen reader only text in the &quot;Skip to content&quot; link at the top of the page, but now I needed to just hide text.</p> <p>I am using this on my blog page, where after an excerpt you can decide to read the post. For a sighter user the position of &quot;Continue reading&quot; would make it obvious that you are going to move to the post with the title. For a person with blindness it might be harder to understand the context. So, now every &quot;Continue reading&quot; link actually contains hidden text that is simply the title of the post again.</p> <h2 id="tabbing-out" tabindex="-1">Tabbing out</h2> <p>I am figuring out if opening links to new tabs is accessible or not.</p> <p>This is something I prefer, but it might not be the best solution: <a href="https://codersblock.com/blog/external-links-new-tabs-and-accessibility/">Coder's block write up about opening new tabs</a>.</p> <h2 id="using-labels" tabindex="-1">Using labels</h2> <p>I want to check out <a href="https://www.w3.org/WAI/ARIA/apg/practices/names-and-descriptions/">W3's instructions on labels</a>. Should be interesting!</p> <h2 id="tagging-tag-link-and-tag-pages" tabindex="-1">Tagging, tag link and tag pages</h2> <p>I am following <a href="https://github.com/11ty/eleventy-base-blog">11ty's base blog (GitHub)</a> to implement pages that show all posts with a specific tag.</p> <h2 id="sharing-posts-to-social-media" tabindex="-1">Sharing posts to social media</h2> <p>I followed Raymond Camden's solutions to this by reading the blog post <a href="https://www.raymondcamden.com/2022/08/22/adding-social-share-links-in-eleventy">Adding Social Share Links in Eleventy</a>. I include this function to every blog post for easy sharing.</p> <p>Because I post in English and Finnish, I have included an if-else statement. <code>If</code> the post has a language attribute (because posts can only have <code>lang=&quot;fi&quot;</code>, English is the default) then it produces a Finnish text for sharing. <code>Else</code> statement produces the default English text.</p> <p>I included optional classes to style it later, if I want.</p> <pre class="language-html"><code class="language-html">[nunjucks if statement]<br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h2</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>share-h<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Jaa someen<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h2</span><span class="token punctuation">></span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>ul</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>share<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span><br> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://twitter.com/intent/tweet?url=https://samimaatta.fi/en/building-blocks-for-my-first-eleventy-site/&amp;text=Building blocks for my first Eleventy site<span class="token punctuation">"</span></span><br> <span class="token punctuation">></span></span>Jaa Twitterissä<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><br> <span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span><br> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://www.linkedin.com/sharing/share-offsite/?url=https://samimaatta.fi/en/building-blocks-for-my-first-eleventy-site/<span class="token punctuation">"</span></span><br> <span class="token punctuation">></span></span>Jaa LinkedInissä<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><br> <span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>ul</span><span class="token punctuation">></span></span><br>[nunjucks else statement]<br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h2</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>share-h<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Share<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h2</span><span class="token punctuation">></span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>ul</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>share<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span><br> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://twitter.com/intent/tweet?url=https://samimaatta.fi/en/building-blocks-for-my-first-eleventy-site/&amp;text=Building blocks for my first Eleventy site<span class="token punctuation">"</span></span><br> <span class="token punctuation">></span></span>Share on Twitter<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><br> <span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span><br> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://www.linkedin.com/sharing/share-offsite/?url=https://samimaatta.fi/en/building-blocks-for-my-first-eleventy-site/<span class="token punctuation">"</span></span><br> <span class="token punctuation">></span></span>Share on LinkedIn<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><br> <span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>ul</span><span class="token punctuation">></span></span><br>[nunjucks endif statement]</code></pre> <h2 id="anonymous-feedback-form" tabindex="-1">Anonymous feedback form</h2> <p>Because of <a href="https://www.gwern.net/About#anonymous-feedback">gwern</a>.</p> Luokkaloikkari! Pelkäätkö, että jonain päivänä paljastut? 2022-08-15T11:13:07Z https://samimaatta.fi/kirjoitukset/luokkaloikkari-pelkaatko-etta-jonain-paivana-paljastut/ <!--StartFragment--> <p>Alkuperäinen julkaisu: <a href="https://www.linkedin.com/posts/samimaat_luokkaloikkari-pelk%C3%A4%C3%A4tk%C3%B6-ett%C3%A4-jonain-p%C3%A4iv%C3%A4n%C3%A4-activity-6962286349877952513-4sh-?utm_source=linkedin_share&amp;utm_medium=member_desktop_web">Luokkaloikkari! Pelkäätkö paljastuvasi? (LinkedIn)</a>.</p> <p>Minulla oli vaihe elämässäni, kun odotin hetkeä, jolloin paljastuisin huijariksi.</p> <p>Tai, että saamani työpaikka olisi paremmissa käsissä jollakin toisella.</p> <p>En siis kokenut olevani yhtä hyvä kuin joku mystinen MUU, jollakin tapaa pätevämpi ihminen.</p> <p>Opiskellessani opettajaksi saatoin ajatella, että jonkun muun pitäisi olla paikallani.</p> <p>Nykyisessä työssäni ajattelin, että jonkun, joka oikeasti osaa jotain saavutettavuudesta, tulisi olla paikallani – tai, että olisin vähintään “kirjastoihminen”.</p> <p>Eräänä kertana, kun otin asian puheeksi, niin minulta kysyttiin pysäyttävästi: “Kuka tämä muu ihminen olisi? Missä olisit ellet siinä?”</p> <p>Jotenkin nämä sanat ovat alkaneet kääntää ajatteluani toiselle mallille: “Miksipä se en olisi minä?”</p> <p>Maailmassa on varmasti ihmisiä, jotka menevät ja tekevät vähemmillä tiedoilla ja taidoilla kuin minä itse. Miksi en siis antaisi itselleni lupaa tuntea ylpeyttä ja varmuutta omistani?</p> <h2 id="tyolaistaustaisten-naisten-huijaritunteet" tabindex="-1">Työläistaustaisten naisten huijaritunteet</h2> <p>Mari Käyhkö käsittelee seuraavassa tutkimusartikellissa muun muassa työläistaustaisten naisten huijaritunteita yliopistotyössään.</p> <p>Tutkimusartikkeli: “Käyhkö, Mari (2020). “Osaanko mä nyt olla tarpeeks yliopistollinen?”: työläistaustaiset yliopisto-opettajanaiset ja luokan kokemukset”</p> <p>(Hän korostaa artikkelissa luokkaa psykososiaalisena ilmiönä, joka muokkaa yksilön minuutta. Luokan ei siis tule olettaa näkyä yksinomaan ulkopuolelta – tai materian ja varallisuuden kautta. Se on kulttuuria ja sosiaalistumista.)</p> <p>Kokemukset ja käsitykset siitä, mitä on “oikea työ” muokkaavat monien vuosien jälkeenkin naisten suhtautumista omaan työhönsä.</p> <p>Artikkelin naiset kuvaavat itsensä ulkopuolisiksi yliopistossa ja vertaavat itseään “akateemiseen ideaaliin”: Henkilöön, joka on sosiaalisesti sulava verkostoituja, jolla on akateeminen tausta, eikä tällä tule mieleenkään kyseenalaistaa omaa asemaansa. Erityisesti tämän taustan kuvitellaan antavan yliopistomaailmassa tarvittavan itsevarmuuden ja huolettomuuden.</p> <p>Naiset kokevat “huijanneensa” tiensä yliopistoon ja menestyneensä “vahingossa” opinnoissaan. Jatko-opiskelemaankin he ovat päätyneet huomaamattaan, kun joku on ehdottanut sitä tai tarjonnut töitä.</p> <p>Kasvaminen uuteen identiteettiin ei ole nopeaa. Kokemukset omasta asiantuntijuudesta nähdään irrallisina oikeasta minästä. Naiset kuvailevat miten oman konferenssiesityksenkin aikana he ikään kuin seuraavat ulkoapäin, kun joku asiantuntija puhuu.</p> <p>Naiset ovat huomanneet huijaritunteiden helpottuneen, mitä enemmän ura on kulkenut eteenpäin. Mitä enemmän mahdollisuuksia näyttää omaa osaamistaan on tullut, niin sitä varmemmaksi toimintakin on käynyt.</p> <p>Naiset eivät siedä asiantuntijuutensa vähättelyä ja tietävät olevansa päteviä, mutta takaraivossa silti kolkuttaa eriasteiset huijaritunteet.</p> <!--EndFragment--> Accessible molecule diagram on the web 2022-08-13T11:12:19Z https://samimaatta.fi/en/accessible-molecule-diagram-on-the-web/ <!--StartFragment--> <p>Originally published as a <a href="https://www.linkedin.com/posts/samimaat_accessible-diagram-of-%CE%B2-maltose-activity-6965283545745358848-kBFc?utm_source=linkedin_share&amp;utm_medium=member_desktop_web">LinkedIn post on accessible molecule diagram</a>.</p> <p>The future is here! Now you can listen to molecule diagrams.</p> <p>Check out my implementation of it here: <a href="https://samimaat.github.io/accessible_maltose.html">Accessible diagram of β-Maltose</a>.</p> <p>Actually the future has been here for quite some time.</p> <p>The above was made with Progressive Access’s tool:</p> <ol> <li>Make an account.</li> <li>Find a suitable chemical compound and use a file type such as Smiles, InChi, InChi Key or Mol.</li> <li>Upload it to their converter.</li> <li>Get a SVG diagram or a HTML snippet. (I got the HTML snippet.)</li> <li>Host it on your website.</li> </ol> <p>Find out more on <a href="https://progressiveaccess.com/chemistry/">Progressive Accesses Accessible Chemical Diagrams</a>.</p> <h2 id="what-to-do-with-them" tabindex="-1">What to do with them?</h2> <p>You could embed them into your ebook or plainly link to your site that hosts them (like I did before).</p> <p>Or do what <a href="https://www.linkedin.com/company/dedicon/">Dedicon</a> did: Localize it, build a pedagogical model around it and release it to all to see. Check out <a href="https://goedekennis.dedicon.nl/alle-artikelen/structuurformules-de-inleiding">Dedicon’s website on chemistry (Dutch)</a>.</p> <!--EndFragment--> Näin teet selkeän digioppimateriaalin 2022-08-12T11:11:23Z https://samimaatta.fi/kirjoitukset/nain-teet-selkean-digioppimateriaalin/ <!--StartFragment--> <p>Julkaistu alunperin LinkedInissä: <a href="https://www.linkedin.com/posts/samimaat_t%C3%A4%C3%A4lt%C3%A4-tulee-viikon-saavutettavuusvinkit-activity-6945254066935480322-dlRm/?utm_source=linkedin_share&amp;utm_medium=member_desktop_web">Millainen on selkeä digioppimateriaali?</a></p> <p>Tätä lähestyäkseen täytyy ensin puhua sen tuomista mahdollisuuksista.</p> <ul> <li>Video- ja ääniupotukset, ääneen luetut osuudet</li> <li>Dynaamiset tehtävät (automaattitarkistus, monivalinta, “klikkaa ja raahaa”, täydennä, yms.)</li> <li>Ei painetun kirjan rajoituksia (sivumäärä tai rakenne ei ole rajattu)</li> </ul> <p>Viimeisin näistä on erityisen tärkeä. Siinä missä painettu kirja on rajoittanut kirjoittajan työtä, niin nyt samaa ei ole – ja digimateriaalin tuomat mahdollisuudet ovat luoneet myös uhkia saavutettavuudelle.</p> <p>Painetussa kirjassa pääsi joko eteen- tai taaksepäin. Digimateriaalissa voi periaatteessa siirtyä ylös, alas, oikealle, vasemmalle ja viistoon. Erityisesti ihmiselle, jolla on hahmotusvaikeuksia tällainen rakenne voi olla hyvin hankala.</p> <p>Mitä voi siis tehdä, että digioppimateriaali olisi selkeämpi?</p> <h2 id="1-kayttaja-ei-saa-tuntea-olevansa-hukassa" tabindex="-1">1. Käyttäjä ei saa tuntea olevansa hukassa</h2> <p>Miten tämä tehdään? Vaihtoehtoja on monia, mutta tee ainaki näin:</p> <ul> <li>Käytä kuvitteellisia sivunumeroita.</li> <li>Mahdollista sisällysluetteloon pääsy materiaalin joka kohdassa. Parempi, jos sisällysluettelo on jollain tapaa koko ajan näkyvissä.</li> </ul> <p>Testaa materiaaliasi: Mieti, että sinut heitettäisiin keskelle digioppimateriaalia. Tietäisitkö sivua tutkimalla, että missä kohtaa kirjaa olet?</p> <p>Eräässä materiaalissa oli koko kirjan kattava sisällysluettelo, ja joka luvussa vielä oma sisäinen sisällysluettelonsa. Tämä helpotti oman paikkansa seuraamista huomattavasti.</p> <h2 id="2-digioppimateriaalissa-taytyy-olla-kayttoohjeet" tabindex="-1">2. Digioppimateriaalissa täytyy olla käyttöohjeet</h2> <p>Tee ainakin nämä perusjutut:</p> <ul> <li>Kuvaile, millainen rakenne materiaalilla on. Onko jotain toistuvaa rakennetta?</li> <li>Selitä käyttämäsi symbolit.</li> </ul> <p>Saavutettavuusvinkki: Älä käytä ikinä pelkkää symbolia, vaan myös tekstiä.</p> <h2 id="3-tee-rakenteesta-lineaarinen" tabindex="-1">3. Tee rakenteesta lineaarinen</h2> <p>Kuvittele, että digioppimateriaali olisi painettu kirja. Tee sisällöt ja rakenne sellaiseksi, että käyttäjä kulkee niiden kaikkien läpi jossain vaiheessa.</p> <p>Sijoita lisäaineistot materiaalin loppuun – älä yksittäisen sivun viereen, jolloin niitä ei voi löytää muualta.</p> <p>Jos linkkaat materiaalin sisällä, niin mahdollista aina palaaminen samaan paikkaan, josta lähdit.</p> <h2 id="4-hot-tip-sisallyta-kuvan-tieto-myos-tekstina" tabindex="-1">4. Hot tip: Sisällytä kuvan tieto myös tekstinä</h2> <p>Jos käytät kuvia, joissa on kaavioita, niin selitä ne vielä auki tekstissä. Tämä tukee näkövammaista ja aivan ketä tahansa käyttäjää.</p> <h2 id="pyyda-apua" tabindex="-1">Pyydä apua</h2> <p>Jos teet digioppimateriaalia tai muutoin digitaalisia sisältöjä, niin ota minuun yhteyttä sivulla <a href="https://www.quenched.fi/contact/">Contact</a>! Pohditaan yhdessä, että miten saamme aikaan selkeämpää ja saavutettavampaa materiaalia.</p> <!--EndFragment--> Luokkaloikkari! Eikö olisi jo aika tehdä oikeita töitä? 2022-08-11T11:10:40Z https://samimaatta.fi/kirjoitukset/luokkaloikkari-eiko-olisi-jo-aika-tehda-oikeita-toita/ <p>Julkaistu alunperin LinkedInissä: <a href="https://www.linkedin.com/posts/samimaat_luokkaloikkari-eik%C3%B6-olisi-jo-aika-tehd%C3%A4-activity-6959909008543477760-w6WI/?utm_source=linkedin_share&amp;utm_medium=member_desktop_web">Oikeat työt</a>.</p> <p>Oikeat työt ovat konkreettisia ja fyysisiä. Jos et ole työpäivän jälkeen rättiväsynyt, niin teitkö oikeastaan töitä ollenkaan?</p> <p>Istut toimistossa ruudun edessä samalla, kun joku muu tekee työtä, jolla on merkitystä ja työn jäljen näkee.</p> <p>Sinulle maksetaan enemmän, mutta teet vähemmän ja pääset helpommalla. Samaan aikaan joku muu sentään raataa palkkansa eteen ja valittelee kipeitä jalkojaan – ja syystä.</p> <p>Sinulla on “aivosumua” – vaikka et edes tee liikaa töitä.</p> <p>Missä työsi jälki näkyy? Mitä hyötyä on teoriasta, kun et ikinä sovella sitä käytäntöön?</p> <p>Suunnittelet ja suunnittelet, mutta huomaat, että suunnitelmasi eivät kestä oikeaa elämää.</p> <p>Et kuulosta akateemiselta. Et myöskään näytä siltä. Kuka pitää tuollaisia vaatteita tällaisessa tilaisuudessa?</p> <p>Olet varmaan vahingossa päätynyt asemaasi. Pärjäsit koulussa, mutta senkin teit varmaan vain täpärästi.</p> <p>Parempi jättää yrittämättä, että et tuota itsellesi taas pettymystä.</p> <p>Onneksi perheesi ei ymmärrä siitä tuon taivaallista.</p> <p>Harmi, että perheesi ei ymmärrä, mitä koet.</p> <p>Sinun pitäisi olla itsevarmempi. Ottaa tila itsellesi. Markkinoida itseäsi. Esiintyä eduksesi.</p> <p>Sen sijaan imitoit jotakuta, jonka sinun kuuluisi olla.</p> <p>Samalla et kuitenkaan halua olla kukaan muu kuin itsesi.</p> <p>Joku muu sopisi tilallesi paremmin – joku pätevämpi.</p> <p>Kuka olet? Puhutko itsellesi näin?</p> Luokkaloikkari! Oletko itsesi suurin jarruttelija? 2022-08-10T11:08:46Z https://samimaatta.fi/kirjoitukset/luokkaloikkari-oletko-itsesi-suurin-jarruttelija/ <!--StartFragment--> <p>Julkaistu alunperin LinkedInissä: <a href="https://www.linkedin.com/posts/samimaat_luokkaloikkari-oletko-itsesi-suurin-jarruttelija-activity-6957241962244521984-jUtI/?utm_source=linkedin_share&amp;utm_medium=member_desktop_web">Luokkariloikkariko jarruttelee itseään?</a></p> <p>Minä olen.</p> <p>Epäilen toimia, koska en usko, että</p> <ol> <li>yllän asettamiini tavoitteisiin,</li> <li>tuotan mitään arvokasta tai</li> <li>oikeasti osaisin ‘mitään.’</li> </ol> <p>Huomaan olevani itseni jarruttelija. Epäilen, että “saankohan tehdä” tai “pitäisikö edes yrittää”.</p> <p>Käyhkö käsittelee artikkelissaan jarruja ja kynnyksiä, joita luokkaloikkarit ovat luoneet itselleen. Niitä ylitetään päivittäin.</p> <p>Minun kynnystäni on laskenut, kun olen saanut olla osana yhteisöjä, joissa tekemisen ajattelumalli on ollut vahva.</p> <p>Minulle tällainen on ollut Kehittäjävalmennus-porukka. Tai välillä työkaveri, joka toteaa “no, eiköhän vain tehdä”.</p> <p>Käyhkö käsitteli artikkelissaan yliopistoon hakeutumista ja samalla työläistaustaisen toimijuuden kokemusta. Toimijuuteen liittyvät rajoittavat ajattelumallit erityisesti vetosivat minuun, joten tästähän piti tehdä oma postauksensa!</p> <h2 id="yksilollistetty-luokka-ja-mielensisaiset-esteet" tabindex="-1">Yksilöllistetty luokka ja mielensisäiset esteet</h2> <p>Tutkimusartikkeli: “Käyhkö, Mari (2013). Hivuttautuen kohti vierasta maailmaa: työläistyttöjen tie yliopistoon.”</p> <p>Käyhkö puhuu artikkelissa ‘yksilöllistetystä luokasta’:</p> <p>Luokka ei ole välttämättä asia, joka ilmenee ulkoisesti muiden toimesta, vaan “luokkataistelut käydään pitkälti oman pään sisällä —.”</p> <p>Hän kertoo:</p> <p>“Naiset tekevät ulospäin näkymätöntä emotionaalista työtä ja käyvät mielen sisäisiä neuvotteluja itsensä kanssa, jotta uskaltaisivat ottaa sen maailman haltuun, mikä on toisille itsestään selvyys. Hiljalleen rakentuneet ja osin rajoittavat (väärin)käsitykset itsestä — voivat tukahduttaa toimijuutta.”</p> <p>Tämä johtaa myös siihen, että epäonnistumiset nähdään omina ominaisuuksina, eikä sosiaalisena eriarvoisuutena.</p> <p>Se voi vaikuttaa esimerkiksi koulutusvalintoihin, kun naiset ovat rajanneet itseltään pois joitain vaihtoja tai tyytyneet tekemään jotain, mitä eivät ole oikeasti halunneet.</p> <!--EndFragment--> Luokkaloikkari! Onko matkasi ollut suora vai mutkikas? 2022-08-09T11:07:58Z https://samimaatta.fi/kirjoitukset/luokkaloikkari-onko-matkasi-ollut-suora-vai-mutkikas/ <!--StartFragment--> <p>Julkaistu alunperin LinkedInissä: <a href="https://www.linkedin.com/posts/samimaat_luokkaloikkari-onko-matkasi-ollut-suora-activity-6956161765885816832-u4YE/?utm_source=linkedin_share&amp;utm_medium=member_desktop_web">Luokkaloikkarin matka</a>.</p> <p>Olisin mennyt ammattikoulun kautta ympäristötöiden pariin, jos työhön tutustuttajani olisi soittanut minulle 8. luokan jälkeisenä kesänä. Olin sanonut opinto-ohjaajalle tykkääväni luonnosta, ja niin tykkäsinkin, koska lapsena suurin osa vapaa-ajasta kuluikin siellä. Pienessä kylässä ei paljoa muuta tekemistä ollutkaan.</p> <p>Kävikin niin, että menin kylän lukioon, että saisin vielä lisäaikaa miettiä, mitä haluaisin tehdä.</p> <p>Spoiler: En tiennyt lukiossakaan tai lukion jälkeen, mitä halusin tehdä.</p> <p>Huomasin kuitenkin olevani hyvä matematiikassa, joten minun kai kannatti opiskella jotain siihen liittyvää. Kirjoitin YO-kokeessa pitkästä matematiikasta E:n, joten pääsin opiskelemaan Oulun yliopistoon matematiikalle. Muistana ajatelleeni: “Minusta ei ainakaan tule matematiikan tutkijaa”, joten luontevaa oli opiskella opettajaksi.</p> <p>Aineenopettajan tutkintopolku on aika tarkkaan määritetty putki, joten uuteen elämään ja ympäristöön tutustuessa sitäkään ei ehtinyt paljoa kyseenalaistaa. Lopulta valmistuinkin matematiikan (ja fysiikan ja [melkein] kemian) aineenopettajaksi.</p> <p>En koe, että olen juurikaan suunnitellut omaa polkuani.</p> <p>Mari Käyhkö käsittelee tällä kertaa toimijuuden kysymyksiä: Koetaanko, että ollaan ajauduttu vai hakeuduttu? Miten ja miksi?</p> <h2 id="mutkat-matkassa" tabindex="-1">Mutkat matkassa</h2> <p>Tutkimusartikkeli: “Käyhkö, Mari (2013). Hivuttautuen kohti vierasta maailmaa: työläistyttöjen tie yliopistoon.”</p> <p>Käyhkö siteeraa muita tutkimuksia, että ‘akateemisessa’ perheessä akateemisuus on itsestäänselvyys: “Todennäköisyys mennä yliopistoon on 8-kertainen akateemisesti koulutetun perheen lapsella verrattuna ei-akateemisen perheen lapseen.”</p> <p>Työläistaustaiset naiset kuvailivat polkuaan yliopistoon eri tavoin:</p> <p>Vain menty. Haahuiltu. Poukkoiltu. Päädytty.</p> <p>Kuulostaako tutulta?</p> <p>Kokemuksissa myös korostuu, miten he ovat olleet yksin koulutusta koskevian asioiden kanssa. Sen seurauksena koulutusvalinnat ovat tuntuneet sattumanvaraisilta, ja suunnan hakemiselta pienistä vihjeistä tai päähänpistoilta.</p> <p>Ei-akateemisessa perheessä kasvaneilla koulutusvalinnat ovat olleet “olosuhdeherkkiä ja vaikutuksille alttiita”. Elämäntilanteet ovat ohjanneet, mitä koulupolulla tehdään seuraavaksi. Kotipaikkakunnalle on saatettu jäädä esimerkiksi perheen tueksi.</p> <p>Mutkikkaamman matkan tehneet naiset ovat kokeneet tulleensa rajoitetuiksi ja lähipiirinsä ohjailtaviksi. Lähipiirin näkemyksiä ei olla kyseenalaistettu.</p> <p>Matkoja on siis monenlaisia, mutta yhteistä niille on</p> <ol> <li>koulumenestys,</li> <li>koulumyönteiset keskiluokkaiset kaverit ja</li> <li>“tiedonjano”.</li> </ol> <p>Näiden myötä naiset ovat pikku hiljaa hivuttautuneet kohti yliopistoa. Joidenkin matka on ollut mutkikkaampi, pidempi ja epävarmempi.</p> <!--EndFragment--> Luokkaloikkari! Miten perheessäsi suhtauduttiin koulunkäyntiin? 2022-08-08T11:07:01Z https://samimaatta.fi/kirjoitukset/luokkaloikkari-miten-perheessasi-suhtauduttiin-koulunkayntiin/ <!--StartFragment--> <p>Julkaistu alunperin LinkedInissä: <a href="https://www.linkedin.com/posts/samimaat_luokkaloikkari-miten-perheess%C3%A4si-suhtauduttiin-activity-6938912744553259008-1KWV/?utm_source=linkedin_share&amp;utm_medium=member_desktop_web">Luokkaloikkarin koulunkäynti</a>.</p> <p>Kotona minua ei erityisesti kannustettu opiskelemaan tai jatkamaan kouluja pitkälle. Toisaalta opiskeluani ei myöskään nähty huonona asiana.</p> <p>Sain aina pienen rahapalkkion hyvästä numerosta kokeessa. Sain myös tehdä rauhassa läksyjäni, mutta niissä ei erityisesti autettu.</p> <p>Koulutusta siis arvostettiin perheessäni. Tästä olen kiitollinen.</p> <p>Itä-Suomen yliopiston tutkija Mari Käyhkö on tutkinut erityisesti naisten luokkaloikkaamista työläistaustasta.</p> <p>Tutkimusartikkeli: “Käyhkö, Mari (2011). Vieras omassa perheessä. Koulussa hyvin menestyneiden tyttöjen koulunkäynti työläisperheessä.”</p> <p>Hänen tutkimusartikkelissaan esitellään kolme tapaa, miten perheet ovat suhtautuneet tyttönsä koulunkäyntiin.</p> <h2 id="1-koulutus-on-avain-helpompaan-elamaan" tabindex="-1">1. Koulutus on avain helpompaan elämään</h2> <p>“Koulunkäyntiin on suhtauduttu avoimen myönteisesti.”</p> <p>Lukiolla on ollut erityinen asema ja se on merkkipaalu parempaan elämään pääsemisestä. Korkeakouluopinnoista ei kuitenkaan puhuttu.</p> <p>Ajatukset perheen tytöstä ovat tiivistyneet lauseeseen: “Sullahan on tota lukupäätä.”</p> <h2 id="2-opiskeluintoa-tai-haaveita-on-vahatelty" tabindex="-1">2. Opiskeluintoa tai haaveita on vähätelty</h2> <p>Jos tyttö halusi keskittyä koulunkäyntiin, niin siitä ennemminkin rangaistiin tai sitä piti peitellä.</p> <p>Perhe-elämän säröisyys hankaloitti koulunkäyntiin keskittymistä. Keskeinen tavoite opiskelemaan pääsemisesä oli etäisyyden ottaminen perheeseen ja kotipaikkakuntaan.</p> <p>Tämän taustan naisilla tie korkeakouluun ei ole ollut suoraviivainen, vaan “on menty vaikeimman kautta”.</p> <h2 id="3-koulunkaynti-yksi-asia-muiden-joukossa" tabindex="-1">3. Koulunkäynti yksi asia muiden joukossa</h2> <p>Perheessä ei pidetty koulunkäyntiä prioriteettina. Se oli hyvä asia, mutta vain tiettyyn pisteeseen asti.</p> <p>Näin yhteistä keskustelua koulunkäynnistä oli hankala käydä, eikä sen tukemiseen ollut aikaa – tai osaamista. Perheessä arvostettiin ‘oikeita töitä’ ja työn ääreen pääsemistä. Itsestään ei sopinut luulla liikoja tai olla kunnianhimoinen.</p> <p>Tunnistatko itsesi jostain tarinasta?</p> <p>Miten tukisit itseäsi, jos voisit palata ajassa taaksepäin?</p> <!--EndFragment--> Luokkanousu, luokkaloikkari, luokkamatka… 2022-08-07T11:06:13Z https://samimaatta.fi/kirjoitukset/luokkanousu-luokkaloikkari-luokkamatka/ <!--StartFragment--> <p>Alkuperäinen julkaisu: <a href="https://www.linkedin.com/posts/samimaat_nyt-minua-askarruttaneella-asialla-on-nimi-activity-6934855568146747392-R2rp/?utm_source=linkedin_share&amp;utm_medium=member_desktop_web">Luokkanousu (LinkedIn)</a>.</p> <p>Nyt minua askarruttaneella asialla on nimi:</p> <p>Luokkaretki, luokkamatka tai &quot;luokkanousu&quot;.</p> <p>En ole osannut aiemmin lähestyä tätä aihetta.</p> <p>Osaksi, että se on varmaan liian lähellä. Osaksi, että se on toisaalta liian abstrakti. Osaksi, että se tuntuu pienestä nillittämiseltä – etuoikeuksineen kaikkineen.</p> <p>Ilmeisesti myöskään ei ole tunnustettu, että Suomi olisi luokkayhteiskunta. Olemmehan tasa-arvoisten mahdollisuuksien maa.</p> <p>Olen pienituloisesta perheestä. Menin korkeakouluun ja tupsahdin aivan erilaiseen maailmaan, jonka sääntöjä ei tiennyt etukäteen.</p> <p>Huomasin kuitenkin nopeasti, että jotkut muut eivät edes tunnustaneet näiden sääntöjen olemassaoloa ja pitivät niitä itsestäänselvinä.</p> <p>Tällaisia sääntöjä olivat asuminen omakotitalossa, asuntolainan ottamisen itsestäänselvyys, vakuutusten osto ja käyttö ja sen sellaiset muut pienet jutut.</p> <p>Keskituloiseksi (tai keskiluokkaan) päästyäni huomaan edelleen hämmentävän minua. Itsestäänselvinä pidettäviä asioita tulee aika ajoin vastaan, jotka edelleen ihmetyttävät.</p> <p>On tietoja ja taitoja, joita ei ole tietystä taustasta tulleena.</p> <!--EndFragment--> Miten pitää mielekäs työpaja? 2022-08-06T11:05:00Z https://samimaatta.fi/kirjoitukset/miten-pitaa-mielekas-tyopaja/ <!--StartFragment--> <p>Pidin huhtikuussa 2022 työpajan, josta työpajojen inhoajakin totesi “Tämähän oli oikein kiva!” Paljastan, miten sen tein!</p> <p>Työpaja pidettiin virtuaalisesti Teamsissä ja käytin Googlen Jamboardia eli virtuaalista fläppitaulua. Työpaja kesti yhden tunnin. Sen aikana keskusteltiin yhdessä ja pienryhmissä.</p> <p>Aluksi kirkastin, että mitä työpaja käsittelee ja mikä sen lopputuote on: Ideoimme vastuullisuustoimenpiteitä ja lopulta meillä on Word-dokumentti, jossa toimenpiteet on vastuutettu niistä päättäville henkilöille.</p> <p>Sovimme, että millaiset säännöt keskustelussa on ja, että fasilitoijana minä annan ja tarvittaessa rajaan puheenvuoroja. Pyrin omalla olemuksellani (rento ja positiivinen) luomaan kivan keskusteluilmapiirin. Jututan työkavereita ennen työskentelyä.</p> <p>Esittelin työpajan rungon ennen työskentelyä:</p> <ol> <li>Ideoimme yksin, sitten yhdessä pienryhmissä ja kirjaamme toimenpiteitä JamBoardille.</li> <li>Keskustelemme yhdessä toimenpiteistä ja työskentelystä.</li> <li>Karsimme hulluimmat ideat pienryhmissä ja keräämme toimivimmat Word-dokumenttiin. Toimenpiteet vastuutetaan henkilöille, joiden tehtäväalueelle ne kuuluvat.</li> <li>Yhteinen keskustelu työpajan kulusta ja fiiliksistä.</li> <li>Mitä tapahtuu seuraavaksi: Vastuutetut henkilöt päättävät, mitkä toimenpiteet ovat toteuttavissa.</li> </ol> <p>Mikä minusta onnistui työpajassa?</p> <ul> <li>Uskalsin luottaa osallistujiin, että tulosta syntyy. Se on juuri sen näköinen, joka sopii kyseiselle ryhmälle.</li> <li>Annoin osallistujien jakaa fiiliksiään työpajan kulusta ja sallin kaikenlaiset mielipiteet. Parempi sanoa ne ääneen kuin jättää sisälle – hyvässä ja pahassa.</li> <li>Tein selkeän rungon työpajan kulusta, sen lopputuotteesta. Hallitsin näin osallistujien odotuksia ja he tiesivät tarkalleen, mitä ollaan tekemässä.</li> </ul> <!--EndFragment--> [EXPLAINED] Onnistuneen etätapahtuman vinkkilista 2022-07-10T19:43:27Z https://samimaatta.fi/kirjoitukset/explained-onnistuneen-etatapahtuman-vinkkilista/ <h2 id="tapahtumaa-taytyy-johtaa" tabindex="-1">Tapahtumaa täytyy johtaa</h2> <p>Tapahtumalla täytyy olla fasilitoija tai juontaja, joka huolehtii viestimisestä osallistujien kanssa, hoitaa siirtymät tapahtuman eri vaiheissa ja huolehtii, että tapahtuma etenee.</p> <p>Vähintään yksi fasilitoija tai juontaja tarvitaan, mutta kaksi olisi jo hyvä. Tällöin toinen pitää huolen tapahtuman “sosiaalisesta ulottuvudesta” eli juttelee osallistujien kanssa ja hoitaa siirtymät eri vaiheissa.</p> <p>Toinen järjestäjä toimii “teknisessä ulottuvuudessa” eli huolehtii siitä, että tapahtumakokemus on muuten hyvä esimerkiksi seuraamalla chattia, vastailemalla osallistujien kysymyksiin yleisistä asioista ja viemällä tietoa fasilitoijan korviin.</p> <h2 id="erityisjarjestelyt" tabindex="-1">Erityisjärjestelyt</h2> <p>Erityisjärjestelyt voivat vaikuttaa paljon etätapahtuman kulkuun, joten ne kannattaa tietää hyvissä ajoin.</p> <p>Mahdollisia erityisjärjestelyjä tai huomioita:</p> <ul> <li>Osallistujalla voi olla näkö- tai kuulovamma. Tällöin voit huomioida tapahtuman saavutettavuuden. Esimerkiksi varmistamalla, että puheenvuoron pyytäminen on näkövammaiselta mahdollista tai, että voiko tapahtumassa on automaattisia tekstityksiä.</li> <li>Osallistuja voi haluta tapahtuman materiaalin etukäteen ja jos se on mahdollista tehdä, niin jaa materiaali heille. Mikseipä siis kaikkien osallistujien kesken?</li> <li>Osallistuja ei välttämättä tunne käytettävää videopuhelusovellusta, joten tapahtuman alkuun kannattaa varata harjoitteluaikaa ja tilaa kysymyksille.</li> </ul> <h2 id="viestinta-ennen-tapahtumaa" tabindex="-1">Viestintä ennen tapahtumaa</h2> <p>Tee tekstipohjia, joita voit käyttää myöhemmin uudestaan. Esimerkiksi ilmoittautumislinkin teksti kannattaa suunnitella niin, että se sopii myös sähköpostiviestin pohjaksi. Ei kannata tehdä samaa työtä kahdesti. Samalla kannattaa miettiä, että voisiko samaa tekstipohjaa käyttää myöhemmin uudelleen.</p> <p>Jokaisessa tekstissä kannattaa olla tiedot: Mitä? Missä? Milloin?</p> <p>Lista paikoista, joissa olisi hyvä olla jonkinlainen teksti:</p> <ul> <li>Saateteksti ilmoittautumislinkin kanssa. Esimerkiksi, jos lähetät linkin sähköpostin tai sosiaalisen median alustan kautta.</li> <li>Teksti, joka on ilmoittautumislinkissä. Joku saattaa jakaa linkkiäsi edelleen ilman saatetekstiä.</li> <li>Mahdollinen vastaussähköposti, kun ilmoittautuminen on tehty, jossa on mahdollisia jatko-ohjeita, kuten ennakkotehtävä.</li> <li>Sähköposti, jossa annat tapahtumalinkin.</li> </ul> <p>Ennen tapahtumaa julkaise tapahtuman ohjelma. Erityisesti, jos tapahtuma kestää pitempään kuin tunnin, koska osallistujat haluavat tietää, että mitä heiltä odotetaan ja milloin on TAUKOJA! Tauot ovat ehdottoman tärkeitä etätapahtuman aikana, joten sisällytä jo yli tunnin tapahtumaan ainakin yksi tauko.</p> <p>Ohjelma auttaa osallistujia virittäytymään tapahtumaasi: Odotetaanko heiltä vain kuuntelemista vai myös osallistumista esimerkiksi pienryhmätilojen kautta? Kun osallistujat osaavat ennakoida tapahtuman kulun, niin se myös helpottaa fasilitoijan työtä.</p> <h2 id="tapahtuman-alku" tabindex="-1">Tapahtuman alku</h2> <p>Järjestä aikaa ennen varsinaista tapahtumaa laitteiden testaamista varten. Jos sinulla on vieras, joka tekee esityksen, niin sitäkin tärkeämpää on testata sen toimivuus.</p> <p>Kun osallistujat saapuvat tapahtumaan, niin tapahtuman luonteesta riippuen voit jo vähän herättää keskustelua juttelemalla saapuville. Jutun aiheiden ei tarvitse olla kummoisia: “Mitä ikkunasta näkyy?” on ihan hyvä kysymys, vaikka se tuntuisikin hölmöltä. Tällä tavoin osallistujat virittäytyvät siihen, että tapahtumassa on vuorovaikutusta.</p> <h3 id="yhteiset-pelisaannot" tabindex="-1">Yhteiset pelisäännöt</h3> <p>Osallistujien kanssa on myös hyvä käydä läpi, että tapahtumassa noudatetaan tiettyjä periaatteita. Ne voivat liittyä fasilitoijan valtaan eli esimerkiksi siihen, että fasilitoijalla on oikeus jakaa ja rajoittaa puheenvuoroja, ja muutenkin ohjata tapahtumaa. Lisäksi kannattaa käyttää esimerkiksi <a href="https://alli.fi/palvelut/tyokaluja-nuorisoalalle/turvallisemman-tilan-periaatteet-ja-vihapuheesta-vapaan-keskustelun-saannot/">Turvallisemman tilan periaatteita</a>, jolloin tiedetään, että jokainen on tervetullut tapahtumaan.</p> <p>Olennaista on, että yhteiset pelisäännöt hyväksytään yhdessä. Fasilitoija voi todeta, että “Sitoudutaan näihin sääntöihin yhdessä, kun tapahtuma jatkuu.” Näin osallistujille on selvää millaisessa tapahtumassa he ovat mukana.</p> <h3 id="ohjelma" tabindex="-1">Ohjelma</h3> <p>Viimeistään tässä vaiheessa kannattaa näyttää osallistujilla millainen ohjelma tapahtumassa on. He osaavat asennoitua tapahtuman kulkuun ja ennakoida, mitä tulee tapahtumaan.</p> <p>Jos tapahtuma on kestää enemmän kuin tunnin, niin pidä tauko!</p> <h2 id="tapahtuman-loppu" tabindex="-1">Tapahtuman loppu</h2> <p>Läsnätapahtumissa osallistujien tutustumienn ja verkostoituminen toisiinsa tapahtuu ohjattujen keskustelujen ja kahvikeskustelujen kautta. Jos tapahtumassa ei ole tällaisia ohjattuja keskusteluja pienryhmissä, niin verkostoitumiseen voi kannustaa pyytämällä osallistujia jakamaan omat sosiaaliset mediansa.</p> <p>Muista varata lopetuksellekin aikaa tapahtuman loppuun ja lopeta tapahtuma selkeästi.</p> <h3 id="palaute" tabindex="-1">Palaute</h3> <p>Jos kokeilit tapahtumassa jotain uutta tai haluat saada muuten vain palautetta, niin sitä kannattaa pyytää. Varaa tähänkin aikaa ennen tapahtuman loppua, että osallistujat vastaavat siihen välittömästi.</p> <!--EndFragment--> Onnistuneen etätapahtuman vinkkilista 2022-07-08T19:42:03Z https://samimaatta.fi/kirjoitukset/onnistuneen-etatapahtuman-vinkkilista/ <!--StartFragment--> <p>Miten onnistua etätapahtuman toteuttamisessa?</p> <p>Tärkeintä asiaa ennen varsinaista vinkkilistaa ei voi korostaa tarpeeksi: <strong>Tapahtumalla täytyy olla fasilitoija tai juontaja</strong>. Tiedät kyllä, mitä on käynyt, kun ennestään toisilleen tuntemattomat osallistujat yrittävät itseohjautua lyhyessä ajassa tai, kun vieras esittäjä on jäänyt yksin esityksensä kanssa. Se on vain hämmentävää.</p> <h2 id="vinkkilista" tabindex="-1">Vinkkilista</h2> <ol> <li> <p>Vastaa kysymyksiin tapahtumaa varten.</p> <ol> <li>Mitä (tapahtuu)?</li> <li>Missä (tapahtuu)?</li> <li>Milloin (tapahtuu)?</li> <li>Mitä erityisjärjestelyitä?</li> </ol> </li> <li> <p>Viesti ennen tapahtumaa.</p> <ol> <li>Mieti, mitä kautta jaat tietoa tapahtumasta.</li> <li>Tee ilmoittautumislinkki.</li> <li>Lähetä linkki tapahtumaan ilmoittautumisen jälkeen.</li> </ol> </li> <li> <p>Tapahtuman kulku.</p> <ol> <li>Laitteiden testaus 10 minuuttia ennen tapahtumaa.</li> <li>Esittäytyminen.</li> <li>Yhteiset pelisäännöt (esimerkiksi <a href="https://alli.fi/palvelut/tyokaluja-nuorisoalalle/turvallisemman-tilan-periaatteet-ja-vihapuheesta-vapaan-keskustelun-saannot/">Turvallisemman tilan periaatteet)</a>.</li> <li>Sovitaan, miten pyydetään puheenvuoroja.</li> <li>Sovitaan, käytetäänkö chattia ja kuka seuraa sitä.</li> <li>Sovitaan, pidetäänkö videokamera päällä, kun puhutaan ja pidetäänkö mikki pois päältä, kun ei puhuta.</li> <li>Käydään läpi ohjelma.</li> </ol> </li> <li> <p>Tapahtuman loppu.</p> <ol> <li>Kiitä osallistujia.</li> <li>Verkostoituminen sosiaalisten medioiden jakamiselle.</li> <li>Palautteen kerääminen.</li> </ol> </li> </ol> <h2 id="selita-lisaa" tabindex="-1">Selitä lisää!</h2> <p>Jos tämä postaus oli sinusta liian lyhyt tai haluat saada lisää selityksiä eri kohdille, niin lue postaukseni aiheesta...</p> <!--EndFragment--> Erätauko-menetelmä 2022-07-06T19:40:52Z https://samimaatta.fi/kirjoitukset/eratauko-menetelma/ <!--StartFragment--> <p>Valtiokonttorin Kehittäjävalmennuksen kautta olen päässyt tutustumaan Erätauko-mentelmään, jonka tavoitteena on luoda parempaa ja rakentavampaa yhteiskunnallista keskustelua.</p> <h2 id="mika-kehittajavalmennus" tabindex="-1">Mikä kehittäjävalmennus?</h2> <p><a href="https://www.valtiokonttori.fi/tapahtuma/kehittajavalmennus-kaynnistyy-jalleen/">Kehittäjävalmennus</a> on Valtiokonttorin järjestämä koulutuskokonaisuus valtion työntekijöille, johon pystyi hakemaan tammikuussa 2021.</p> <p>Kehittäjävalmennukseen kuuluu monia erilaisia koulutuksia, jotka käsittelevät mm. ratkaisukeskeisyyttä, virtuaalifasilitointia, ilmiölähtöisyyttä ja tässä käsiteltävää Erätauko-dialogia.</p> <p>Syksyn 2021 mittaan tulevat aiheet käsittelevät esimerkiksi myös tekoälyä valtionhallinnossa ja systeemisyysajattelua.</p> <p>Yhtenä, erityisesti minua kiinnostavana, aiheena oli Erätauko-menetelmä ja dialogi.</p> <h2 id="dialogi-on-kaikkien-kokemusten-kohtauspaikka" tabindex="-1">Dialogi on kaikkien kokemusten kohtauspaikka</h2> <p>Erätauko-dialogi sai alkun <a href="https://www.sitra.fi/eratauko/">Sitran Erätauko-hankkeesta</a>, jonka teemana oli rakentavan keskustelun lisääminen ja osallisuuden lisääminen yhteiskunnassa. Nykyisin Erätauko-menetelmää jatkokehittää ja kouluttaa <a href="https://www.eratauko.fi/">Erätauko-säätiö</a>. Menetelmässä keskustelu nojaa kokemuspuheen varaan.</p> <h3 id="mita-kokemuspuhe-on" tabindex="-1">Mitä kokemuspuhe on?</h3> <p>Kokemuspuhe tarkoittaa, että jokainen puhuu omista kokemuksistaan esittämättä yleisiä mielipiteitä siitä, miten asioiden pitäisi olla tai miten itse näkee niiden olevan laajemmassa perspektiivistä. Tarkoitus on siis kertoa, miten käsiteltävä asia ilmenee juuri omassa elämässä.</p> <h3 id="mita-eratauko-dialogi-on" tabindex="-1">Mitä Erätauko-dialogi on?</h3> <p>Tarkoituksena on syventää ymmärrystä ja saada tietoa muiden ihmisten kokemuksista käsiteltävästä aiheesta.</p> <p>Esimerkiksi viimeisin kokemani dialogi koski suomalaista keskustelukulttuuria. Dialogissa olevat ihmiset jakoivat kokemuksiaan erilaisista keskustelutilanteista ja myös reflektoivat, millaisissa tilanteissa keskustelu on helppoa tai vaikeaa.</p> <h3 id="mita-eratauko-dialogi-ei-ole" tabindex="-1">Mitä Erätauko-dialogi ei ole?</h3> <p>Tarkoituksena ei ole löytää ratkaisuja, tehdä päätöksiä tai päästä yhteisymmärrykseen. Siinä ei ole myöskään tarkoitus väitellä muiden osallistujien kanssa parhaasta mielipiteestä.</p> <p>Suomalaisesta keskustelukulttuurista puhuttaessa ei käytetty puheenvuoroja siihen, että millaista keskustelun pitäisi olla, vaan oman kokemuksen jakamiseen. Nämä saattoivat olla hyviä tai huonoja riippuen henkilöstä ja tilanteesta.</p> <h2 id="kaiken-keskiossa-rakentavan-keskustelun-pelisaannot" tabindex="-1">Kaiken keskiössä rakentavan keskustelun pelisäännöt</h2> <p>Dialogi tapahtuu yhdessä hyväksyttyjen pelisääntöjen varassa, jotka luovat rakentavan keskustelun ilmapiirin.</p> <p><strong>Rakentavan keskustelun pelisäännöt</strong></p> <ol> <li>Kuuntele toisia, älä keskeytä tai käynnistä sivukeskusteluja.</li> <li>Liity toisten puheeseen ja käytä arkikieltä.</li> <li>Kerro omasta kokemuksesta.</li> <li>Puhuttele muita suoraan ja kysy heidän näkemyksiään.</li> <li>Ole läsnä ja kunnioita toisia sekä luottamuksen ilmapiiriä.</li> <li>Etsi ja kokoa. Työstä rohkeasti esiin tulevia ristiriitoja ja etsi piiloon jääneitä asioita.</li> </ol> <p>Kohta 6 liittyy myös kokemuspuheeseen: Kunkin henkilön kokemus samasta tilanteesta voi olla täysin erilainen ja dialogin aikana tämä on arvokas asia. Lisäksi kokemus voi olla myös ristiriidassa sen kanssa, minkä <strong>tietää</strong> todeksi, mutta silti kokee toisella tavalla. Keltään ei voi viedä kokemusta pois.</p> <h2 id="bonus-pisteet-mita-teet-kun-haluat-tuhota-dialogin" tabindex="-1">Bonus-pisteet: Mitä teet, kun haluat tuhota dialogin?</h2> <p>Joskus uuden käsitteen ymmärtämiseksi on helpompi selvittää, millä tavoilla se ei ainakaan toimisi. Erätauko-säätiö on koonnut sivulleen <a href="https://www.eratauko.fi/11-kikkaa-tuhota-dialogi/">11 kikkaa tuhota dialogi</a>.</p> <p>P.S. Oma lempparini on ehdottomasti “Keskeytä”, koska huomaan tekeväni sitä ihan vapaa-ajallakin. Olen ottanut tavoitteeksi keskittyä enemmän kuuntelemiseen – vähemmän selittelyyn. Mikä kikka osuu sinulla omaan nilkkaan?</p> <!--EndFragment--> Last day of Solidabis Code Challenge 2022 – Kesken jäänyt 2022-07-04T19:39:58Z https://samimaatta.fi/kirjoitukset/last-day-of-solidabis-code-challenge-2022-kesken-jaanyt/ <!--StartFragment--> <p>Olen nettisovellusaloittelija, joka tekee Solidabiksen koodihaastetta 2022. Päivitän, kuinka minulla menee ja jaan tuskani julkisesti, kun yritän rakentaa äänestyssovellusta ravintolan päättämiseksi!</p> <h2 id="yllattava-kaanne" tabindex="-1">Yllättävä käänne</h2> <p>Tein sen!</p> <p>Hankin koiranpennun ja jätin koodihaasteen sikseen!</p> <p>Siinäs siis kuulitte. Tällaista tämä on kun elämän parrasvaloihin astuu jotain muuta kuin oma kunnianhimo oppia jotain uutta webdevaamisesta.</p> <h2 id="mita-opin" tabindex="-1">Mitä opin?</h2> <p>Mitäpä siis opin ja mihin asti pääsin?</p> <p>Viimeksi taisin turhautua, koska en saanut paikkakunta-tietoa lomakkeesta APIin asti. Ilokseni totean, että onnistuin siinä!</p> <p>Sain aikaan siis oikein nätin listan paikkakunnan ravintolasta, kun sen syötti lomakkeeseen.</p> <p>Seuraavaksi opettelin pyyhkimään edelliset tulokset pois, kun etsin toisen paikkakunnan ravintoloita. Onnistuin siis siinäkin!</p> <p>Sen jälkeen tekeminen oikeastaan loppuikin. En lopulta päässyt toteuttamaan varsinaista äänestämistä tai sivuston varsinaista ulkoasua.</p> <p>Olen kuitenkin tyytyväinen. Taas tuli tehtyä jotain uutta ja ehkä ensi vuonna taas jatketaan.</p> <p>Seuraa, jos haluat nähdä, mitä tapahtuu seuraavaksi! Se ei todennäköisesti liity nettisivujen kehittämiseen, mutta ainakin saavutettavuuteen.</p> <!--EndFragment--> Day 4 of Solidabis Code Challenge 2022 – Täydellinen turhautuminen 2022-07-03T19:38:54Z https://samimaatta.fi/kirjoitukset/day-4-of-solidabis-code-challenge-2022-taydellinen-turhautuminen/ <!--StartFragment--> <p>Olen nettisovellusaloittelija, joka tekee Solidabiksen koodihaastetta 2022. Päivitän, kuinka minulla menee ja jaan tuskani julkisesti, kun yritän rakentaa äänestyssovellusta ravintolan päättämiseksi!</p> <p>Tällä kertaa olen vain täydellisen turhautunut.</p> <h2 id="html-kielen-sisakkaisyys" tabindex="-1">HTML-kielen sisäkkäisyys</h2> <p>Siis kuinka vaikeaa voi olla pienelle ihmisille ymmärtää HTML-elementtien sisäkkäisyyttä?</p> <p>Ei kovinkaan vaikeaa. Otetaan yksinkertaistettu esimerkki (eli jätän tunnisteet ja muut attribuutit pois):</p> <pre><code>&lt;form&gt; &lt;input&gt;Anna paikkakunnan nimi&lt;/input&gt; &lt;button&gt;Hae paikkakunnan ravintolat&lt;/button&gt; &lt;/form&gt; </code></pre> <p>Lomake eli <code>&lt;form&gt;</code>-elementti on nyt elementtien <code>&lt;input&gt;</code> ja <code>&lt;button&gt;</code> vanhempi (”parent”). Toisinpäin: syöttökenttä ja painike eli <code>&lt;input&gt;</code> ja <code>&lt;button&gt;</code> ovat lomakkeen lapsia (”children”).</p> <p>Ihmiselle (minulle) on vaikeaa ymmärtää, että miten voin käyttää JavaScriptiä <code>&lt;input&gt;</code>-kentän tekstisisällön saamiseen! Se ei siis onnistunut mitenkään.</p> <p>Lomakkeenhan ainoa tehtävä on välittää tätä tietoa minulle, joten se vielä lisää turhautumista!</p> <h2 id="vastausten-viidakko" tabindex="-1">Vastausten viidakko</h2> <p>Vaikka katsoin youtube-videon youtube-videon jälkeen ja samosin läpi Google-tulosten viidakon, niin en vain alkanut ymmärtämään, miten saan napattua tuon tiedon lomakkeesta!</p> <p>Vastauksia oli monenlaisia, mutta yksikään niistä ei vaikuttanut olevan ratkaisu juuri minun ongelmaani.</p> <p>Löysin vastauksen, miten saan…</p> <ol> <li>pelkästä input-kentästä tiedon Javascriptin kautta APIlle, mutta en, että mitä teen, kun se on lomakkeen sisällä!</li> <li>ilmoituksen siitä, että lomake oli onnistuneesti palautettu, mutta en, että miten saan sen sisältämät tiedot käyttööni!</li> <li>tehtyä hakutoiminnon, jos minulla on tiedossa jo kaikki ravintolat joka paikkakunnalta, mutta en, että miten saisin haettua vain tietyn paikkakunnan ravintolat!</li> </ol> <p>Minulla on siis kaikenlaisia osavastauksia ongelmaan ja tarvitsen jotenkin keinon yhdistää ne. Tällä hetkellä lyö tyhjää…</p> <p>Myötäelä kanssani aina seuraavaan ongelmakohtaan asti.</p> <!--EndFragment--> Day 3 of Solidabis Code Challenge 2022 – Radio-painikkeet ja semantiikka 2022-07-02T19:37:41Z https://samimaatta.fi/kirjoitukset/day-3-of-solidabis-code-challenge-2022-radio-painikkeet-ja-semantiikka/ <!--StartFragment--> <p>Olen nettisovellusaloittelija, joka tekee Solidabiksen koodihaastetta 2022. Päivitän, kuinka minulla menee ja jaan tuskani julkisesti, kun yritän rakentaa äänestyssovellusta ravintolan päättämiseksi!</p> <p>Tällä kertaa ihmettelen, että miten saan näytettyä sivulla listan painikkeita, joista saadaan valittua ravintola.</p> <h2 id="lomake-jumppaa" tabindex="-1">Lomake-jumppaa</h2> <p>Viimeksi siis onnistuin saamaan ravintola-listan jo näkyviin. Jee!</p> <p>Nyt haluaisin mahdollistaa ravintolan valinnan ja sitä kautta pääsen käsiksi (ehkä) äänestämiseen. Käytän tässä hyväksi lomaketta <code>&lt;form&gt;</code>, syöttöä <code>&lt;input&gt;</code> ja syötön nimilappua <code>&lt;label&gt;</code>. Tarkemmin sanottuna luon radio-painikkeita. Koodi näyttäisi tältä:</p> <pre><code>&lt;form&gt; &lt;input type=”radio name=”restaurant” id=”restaurant0” value=”paten_potsi”&gt; &lt;label for=”restaurant0”&gt;Paten pötsi&lt;/label&gt; &lt;/form&gt; </code></pre> <p>Tärkeää huomioida radio-painikkeen luonnissa:</p> <ol> <li>Attribuutti <code>type=”radio”</code>, jotta selain ymmärtää sen radio-painikkeeksi.</li> <li>Attribuutti <code>name=”[ryhmän nimi]”</code>. Tämä yksilöi radio-painikkeiden ryhmän, joihin kaikki samannimiset painikkeet kuuluvat. Näin selain tietää, että vain yksi näistä ryhmän painikkeista voidaan valita.</li> <li>Attribuutti <code>id=”[uniikki tunniste]”</code>, jonka avulla juuri tähän tiettyyn valintaan voi viitata. Tätä tarvitaan, kun painikkeelle tehdään nimilappu <code>&lt;label&gt;</code>, jossa käytetään <code>for</code>-attribuuttia. Nimilappu mahdollistaa myös valinnan teon klikkaamalla vain näkyvää tekstiä!</li> <li>Attribuutti <code>value=”[painikkeen ‘arvo’]”</code>. Tämä on käsitykseni mukaan se, mikä oikeasti viestitään selaimelle, kun valinta tehdään. Sen toiminta on minulle vähän hämärän peitossa.</li> </ol> <h2 id="juututaan-semanttiikkaan-jooko" tabindex="-1">Juututaan semanttiikkaan, jooko?</h2> <p>Oikea semanttisuus eli elementtien käyttö on tärkeää jo siksi, että monet apuvälineohjelmat, kuten ruudunlukijat käyttävät niitä pääasiassa kertoakseen käyttäjälle, minkälaisten asioiden kanssa he ovat tekemisissä. Oikea attribuuttien käyttö myös lisää informaatiota, jota viedään käyttäjälle niiden kautta. Jos lomakkeen loisi vain <code>&lt;div&gt;</code>-elementeillä, niin tällaiset ohjelmat eivät tietäisi, minkä kanssa ovat tekemisissä.</p> <p>En vielä ole varma, että auttaako tämä äänestämisessä ja sen pitäisi olla mahdollista sovelluksessa.</p> <p>Koska haluan myös, että äänen voi ottaa pois, niin siihenkin pitäisi keksiä jokin temppu. Radio-painikkeet eivät itseasiassa salli valinnan poistoa.</p> <p>Valinnan voi poistaa kylläkin valintaruuduista… Ongelma on, että niiden avulla voi valita monta vaihtoehtoa samaan aikaan eli äänestää montaa eri vaihtoehtoa. Olisiko tämä kuitenkaan epätoivottu ominaisuus?</p> <p>Kaikenlainen apu otetaan vastaan (kunhan et suoraan kerro, että miten minun pitäisi tehdä koko sovellus)!</p> <p>Seuraa, kun hämmennyn edelleenkin.</p> <!--EndFragment--> Day 2 of Solidabis 2022 – Noutaminen eli fetch() 2022-07-01T19:36:56Z https://samimaatta.fi/kirjoitukset/day-2-of-solidabis-2022-noutaminen-eli-fetch/ <!--StartFragment--> <p>Olen nettisovellusaloittelija, joka tekee Solidabiksen koodihaastetta 2022. Päivitän, kuinka minulla menee ja jaan tuskani julkisesti, kun yritän rakentaa äänestyssovellusta ravintolan päättämiseksi!</p> <p>Tällä kertaa ihmettelen, että miten onnistuin tulostamaan sivuilleni listan Helsingin ravintoloista APIn avulla.</p> <h2 id="google-auttaa" tabindex="-1">Google auttaa</h2> <p>Minulla ei ollut hajuakaan siitä, että miten saisin APIn kautta tietoja ja sen toimimaan, joten käännyin Googlen puoleen.</p> <p>Sain selville, että javascriptin kanssa puhutaan “fetch”-APIsta, jolla voi hakea tietoja muista lähteistä. Käy siis järkeen, että tätäkin kutsutaan APIksi, koska se yhdistää ja luo yhteyden kahden ohjelman välillä: Minun javascriptini ja ravintolatietojen kanssa.</p> <p>Olen kyllä edelleen hukassa, että mikä API oikeastaan on. Onko se tarkasti sanottuna rajapinta, jossa tietoja päästävät ‘putket’ ovat? Onko se ohjelma? Saa kertoa.</p> <p>Halusin saada ravintoloiden nimet. Googletin ja löysin hyvän koodinpätkän Medium-postauksesta (<a href="https://jack72828383883.medium.com/how-to-use-javascript-fetch-to-display-api-results-in-html-7aa59936ed30">How to Use JavaScript Fetch to Display API Results in HTML</a>). Se käsitteli Rick and Mortya, joten aina vain parempi!</p> <h2 id="noutamisen-vaiheet" tabindex="-1">Noutamisen vaiheet</h2> <p>Ensin minun piti siis</p> <ol> <li>käyttää <code>fetch()</code>-APIa, jonka argumentiksi annan APIn nettiosoitteen, jolloin</li> <li><code>fetch()</code> tuo minulle nettiosoitteen sisällön vastauksena (response) ja</li> <li>muutan vastauksen <code>.then</code>-metodin ja funktion avulla json-tiedostoksi (JSON tarkoittaa “JavaScript Object Notation”). Nyt riittää tietää, että siinä voi säilyttää tietoa ja liikuttaa sitä paikasta toiseen.</li> </ol> <p>Käytin <code>.then</code>-metodia(, jota en myöskään täysin ymmärrä vielä). Nimenomaisesti se kai kertoo, mitä tehdään seuraavaksi, kun edellinen vaihe on tapahtunut eli, kun <code>fetch() </code>on toteutunut.</p> <h2 id="nakyviin-sivuille" tabindex="-1">Näkyviin sivuille</h2> <p>Olen luonut HTML-puolelle (javascript ja HTML ovat eri tiedostoissa) lohkon <code>&lt;div&gt;</code>, jonka <code>id</code>-tunniste on <code>&quot;restaurant-data&quot;</code>. <code>Id</code>:n avulla voin ohjata paikan, jossa haluan näyttää ravintoloiden tiedot.</p> <p>Sitten käyn läpi ravintoloiden listan, jonka olen saanut <code>fetch()</code>-APIn kautta käyttämällä <code>.forEach</code>-metodia.</p> <p>Käytännössä <code>forEach</code> on silmukka, joka käy läpi jokaisen ravintolan nimen, luo sille kappale-elementin <code>&lt;p&gt;</code> ja sijoittaa tähän elementtiin tekstin “Ravintola: <code>[ravintolan nimi]</code>”. <code>[Ravintolan nimi]</code> saadaan ravintoloiden APIsta.</p> <p>Täytyy myöntää, että tässä vaiheessa olen aika tyytyväinen omaan etenemiseeni! Aluksi minulla ei ollut hajuakaan, miten API toimii tai miten saisin sivuilleni näkyviin mitään tietoja, mutta nyt siellä on jo lista ravintoloita.</p> <h2 id="seuraavat-askeleet" tabindex="-1">Seuraavat askeleet</h2> <p>Seuraavaksi voisin keksiä, että miten käyttäjä voi valita itse kaupungin, eikä vain katsoa Helsingin tarjontaa. Oli myös siistiä hoksata, että tiedot päivittyvät joka päivä <a href="http://lounaat.info/">lounaat.info</a> -palvelusta (vähän itsestäänselvää, mutta ihmettelin tietojen muuttumista).</p> <p>Seuraa, jos haluat nähdä, mitä tapahtuu seuraavaksi! Miten tekisit vastaavan itse?</p> <!--EndFragment--> Day 1.75 of Solidabis Code Challenge 2022 – En ymmärrä mitään 2022-06-30T19:35:55Z https://samimaatta.fi/kirjoitukset/day-1-75-of-solidabis-code-challenge-2022-en-ymmarra-mitaan/ <!--StartFragment--> <p>Olen nettisovellusaloittelija, joka tekee Solidabiksen koodihaastetta 2022. Päivitän, kuinka minulla menee ja jaan tuskani julkisesti, kun yritän rakentaa äänestyssovellusta ravintolan päättämiseksi!</p> <p>Tällä kertaa ihmettelen, että mikä on API ja miten Swagger liittyy siihen.</p> <h2 id="ap-inointia" tabindex="-1">APInointia</h2> <p>API (application programming interface) on käsittääkseni kyseessä, kun kaksi eri ohjelmaa pyrkivät keskustelemaan keskenään. Jos ohjelmalla on API, niin se luo ‘putken’, jota kautta tieto siirtyy ohjelmasta toiseen eli niiden välille muodostuu rajapinta.</p> <p>Koodihaasteen tapauksessa API muodostuu backend-ohjelman ja <a href="https://www.lounaat.info/">lounaat.info</a> -palvelun välille. API ikään kuin kertoo backend-ohjelmalle, miten tietoja noudetaan ja sitä kautta APIn dokumentaatio kertoo minulle miten sitä käytetään.</p> <p>Näin saan esimerkiksi kaikkien Helsingin ravintoloiden listan backendin kautta, koska se osaa kommunikoida <a href="https://www.lounaat.info/">lounaat.info</a> -palvelun kanssa ja järjestellä tiedon muotoon, jota minun on helppo käsitellä.</p> <h2 id="mika-ihmeen-swagger" tabindex="-1">Mikä ihmeen “Swagger”?</h2> <p>Swagger on työkalu, joka käyttää avoimen lähdekoodin periaatteita APIen dokumentaation esittelyyn ja käyttöönottoon. Swagger käyttää OpenAPI määrityksiä, jotka mahdollistavat ns. yhteisen kielen kaikille APIlle, joita palvelussa on. On siis helpompi oppia se kuin tuhansia muita.</p> <p>Se ei kuitenkaan auttanut minua selvittämään, miten Swaggerin openAPI dokumentaatiota luetaan. Swaggerissa oli enemmän ohjeita sille, miten teet sinne oman APIsi kuin, että miten muut voivat sitä käyttää. Nämä perustuvat HTTP-metodeihin.</p> <p>Ilmeisesti on neljä olennaista HTTP-metodia, kun APIa käytetään:</p> <ol> <li><strong>GET</strong> tarkoittaa, että tämän ‘putken’ kautta saa haettua tietoa APIn läpi. Esimerkiksi listan ravintoloista.</li> <li><strong>POST</strong> tarkoittaa, että voin viedä tietoa APIn kautta. Esimerkiksi äänet, jotka kukin ravintola saa.</li> <li><strong>PUT</strong> tarkoittaa, että voin luoda jonkin uuden objektin tai päivittää jotain olemassa olevaa (en oikein tajua vielä).</li> <li><strong>DELETE</strong> on aika itsestäänselvä. Voin poistaa jotain tietoa tätä kautta. Esimerkiksi, jos jokin ravintola on syytä poistaa kokonaan tietokannasta, niin voisin tehdä sen tällä.</li> </ol> <p>Kaikkia näitä ei kuitenkaan ole Swaggerin openAI -sivulla, joka koskee tätä kyseistä tehtävää. <strong>PUT</strong> ja <strong>DELETE</strong> puuttuvat kokonaan. Ehkä minun ei siis haluta poistavan tai lisäävän mitään olennaisia tietoja – pelkästään muokkaavan tai hakevan niitä.</p> <p>Ai, niin! Minun piti käyttää jotain “gradlea”, että sain edes openAI-sivun avattua. En tiedä vielä mikä se on.</p> <p>Käykö mikään tästä järkeen? Ei ainakaan kaikki minulle. Selitä minulle ja muille, jos tiedät paremmin!</p> <!--EndFragment--> Day 1.5 of Solidabis Code Challenge 2022 – Runko ja MVP 2022-06-29T19:34:36Z https://samimaatta.fi/kirjoitukset/day-1-5-of-solidabis-code-challenge-2022-runko-ja-mvp/ <!--StartFragment--> <p>Olen nettisovellusaloittelija, joka tekee Solidabiksen koodihaastetta 2022. Päivitän, kuinka minulla menee ja jaan tuskani julkisesti, kun yritän rakentaa äänestyssovellusta ravintolan päättämiseksi!</p> <p>Törmäsin heti moneen minulle tuntemattomaan asiaan: API, Docker, Gradle, Spring Boot, Java, HTTP-only -cookie.</p> <h2 id="tarkein-ensin" tabindex="-1">Tärkein ensin</h2> <p>Lähdin siis liikkeelle ensimmäisestä järkevästä asiasta: Nimestä. Tämä luiskahti minulle kuin saukko puskista (kuultu aikoinaan yläasteen opettajalta. En tykännyt. Olkaa hyvä).</p> <p>Sovellukseni nimi tulee olemaan…</p> <p><strong>Safka Skaba.</strong></p> <p>Se kuvaa täydellisesti sitä, mitä sovelluksen on tarkoitus tehdä ja minusta se on myös erityisen esteettinen! Joku kielenhuollon ammattilainen osaa varmasti kuvailla, mikä siitä tekeekään niin miellyttävän.</p> <h2 id="sovelluksen-ominaisuudet" tabindex="-1">Sovelluksen ominaisuudet</h2> <p>Seuraavaksi mietin, että millaisia ominaisuuksia haluaisin sovellukseen.</p> <ol> <li>Hakukenttä, josta ravintoloita voi hakea.</li> <li>Listaus ravintoloista, jotka sopivat hakuun.</li> <li>Äänestys-painike.</li> <li>Äänen lukitseminen, jotta paikka voidaan päättää.</li> </ol> <p>Haluan, että ravintoloiden ohessa näkyisi, että millaisia ruokavalioita ne palvelevat. Tällä tavoin käyttäjä voi nopeasti nähdä, että kannattaako tiettyä ravintolaa edes äänestää.</p> <p>Mietin, että tämän voisi toteuttaa myös suodattimella, jolloin tietyt ravintolat eivät näy ollenkaan vaihtoehtoina, jos niissä ei ole tarjolla esimerkiksi laktoositonta ruokaa.</p> <p>Mitä mieltä olet, miten minun kannattaisi tehdä?</p> <ol> <li>Tägit, joissa lukee “laktoositon”, “vegaaninen” jne. ravintolan alla.</li> <li>Suodatin.</li> <li>Molemmat</li> </ol> <p>Tein sitten nopean luonnoksen canvalla, miltä sovellus näyttäisi <a href="https://www.canva.com/design/DAE_MCb7l_I/ROt8DYkSh0xFUkUPCGCI_Q/edit?utm_content=DAE_MCb7l_I&amp;utm_campaign=designshare&amp;utm_medium=link2&amp;utm_source=sharebutton%5D%28https%3A%2F%2Fwww.canva.com%2Fdesign%2FDAE_MCb7l_I%2FROt8DYkSh0xFUkUPCGCI_Q%2Fedit%3Futm_content%3DDAE_MCb7l_I&amp;utm_campaign=designshare&amp;utm_medium=link2&amp;utm_source=sharebutton">Safka Skaba</a>.</p> <h2 id="mvp" tabindex="-1">MVP</h2> <p>Monet mainitsemistani asioista ovat vielä sellaisia, joita en osaisi tehdä. Yritän siis ensin saada tehtyä “minimum viable productin” (MVP). Vapaasti siis “yksinkertaisin toimiva tuote”. Tällä olisi vähintään haasteessa esitetyt vaatimukset:</p> <ul> <li>Lounaspaikkojen haku</li> <li>Äänen antaminen, muuttaminen ja poistaminen</li> <li>Päivän äänestystuloksen esittäminen reaaliajassa</li> </ul> <p>Katsotaas, mitä seuraavaksi saan aikaan…</p> <!--EndFragment--> Day 1 of Solidabis Code Challenge 2022 – Motivaatio 2022-06-27T21:00:00Z https://samimaatta.fi/kirjoitukset/day-1-of-solidabis-code-challenge-2022-motivaatio/ <p>Teimme viime vuonna kaverini kanssa Solidabiksen koodihaasteen 2021, jossa toteutimme <a href="https://autoilumittarisovellus.herokuapp.com/">Autoilumittarisovelluksen (<span lang="en">HerokuApp</span>)</a>.</p> <p>Se oli ensimmäinen kerta, kun kumpikaan meistä teki nettisovellusta. Opettelimme miten HTML, CSS, Javascript ja React toimivat. Myönnettäköön, että en ehtinyt saada kovin kummoista otetta Reactiin, vaan kaverini otti siitä pitkälti koppia. HTML ja CSS olivat työni puolesta tuttuja: e-kirjaformaatit (kuten DTbook ja EPUB) rakentuvat pitkälti niille.</p> <h2 id="talla-kertaa-yksin" tabindex="-1">Tällä kertaa yksin</h2> <p>Päätin nyt kokeilla Solidabiksen koodihaastetta uudelleen, kun vuoden 2022 versio tuli julki.</p> <p>Tehtävänä on tällä kertaa tehdä äänestyssovelluksen frontend, jolla esimerkiksi työpaikan lounaspaikasta voidaan päästä yksimielisyyteen. Sovelluksen backend on tehty valmiiksi</p> <h3 id="tehtavananto" tabindex="-1">Tehtävänanto</h3> <p>Onko työ/kaveriporukassasi eripuraa ja “nokkapokkaa” missä tänään syödään? Ei hätää!</p> <p>Tehtävänäsi on demokratisoida lounaspaikan valintaprosessi toteuttamalla äänestyssovelluksen frontend.</p> <p>Tehtävän toteutusta varten saat valmiin backendin, jonka mukana tulevaan API-dokumentaatioon pääset tutustumaan.</p> <p>Toteutuksessa käytettävät teknologiat ovat vapaasti päätettävissäsi.</p> <p>Sovelluksessa tulee olla seuraavat toiminnot:</p> <ul> <li>Lounaspaikkojen haku</li> <li>Äänen antaminen, muuttaminen ja poistaminen</li> <li>Päivän äänestystuloksen esittäminen reaaliajassa</li> </ul> <p>Katso vielä lisätiedot tehtävän arviointikriteereistä sekä tarkempi ohje siitä, mitä palautuksessa tulee huomioida.</p> <p>Onnea koodihaasteeseen ja mukavaa (kesä)koodailua!</p> <!--EndFragment--> <h2 id="termit-tutuiksi" tabindex="-1">Termit tutuiksi</h2> <p>Pari termiä, jotka voivat hämmentää aivan aloittelijaa (joksi kyllä lasken itsenikin, mutta nämä jo tiesin)!</p> <h3 id="frontend" tabindex="-1">Frontend</h3> <p>Mikä on frontend? Frontend on ikään kuin sovelluksen julkisivu.</p> <p>Käytännössä se on osa, joka näkyy ulospäin ja, jonka kanssa käyttäjä vuorovaikuttaa. Siihen laitetaan kaikki visuaalisen suunnittelun paukut ja samaan aikaan keskitytään nettisivun saavutettavuuteen.</p> <p>Tämä tarkoittaa esimerkiksi saumatonta toimintaa erilaisten apuvälineiden, kuten ruudunlukuohjelmien tai suurennustyökalujen, kanssa. Tämän osan minä suunnittelen haastetta varten.</p> <h3 id="backend" tabindex="-1">Backend</h3> <p>Mikä on backend? Backend on, mitä on konepellin alla.</p> <p>Se laittaa pyörät pyörimään ja monesti sovelluksissa nämä ovat taustalla pyöriviä laskelmia tai tietokantoja, joita käyttäjä voi tutkia frontendin kautta.</p> <p>Haasteen tapauksessa backendin kautta saa listauksen kaikista tietyn paikkakunnan ravintoloista ja se mahdollistaa niistä äänestämisen.</p> <h2 id="building-in-public" tabindex="-1">Building in Public</h2> <p>Tarkoitukseni on ns. ‘build in public’ eli haluaisin mahdollisimman paljon ja laajasti näyttää, mitä olen tekemässä, miten ja miksi. Mutta miksi ihmeessä?</p> <ol> <li>Joudun opettelemaan paljon uutta ja siitä kirjoittaminen on hyvä tapa vetää yhteen oppimaani.</li> <li>Haluaisin osallistaa ihmisiä jollain tapaa sovelluksen rakentamiseen. Ehkä voisin saada palautetta silloin tällöin.</li> <li>Jos jotakuta kiinnostaa tällainen nettisovellusdevaaminen, mutta he eivät ole tehneet asian eteen mitään, niin tämä voi olla hyvä ponnahduslauta siihenkin!</li> <li><a href="https://www.linkedin.com/company/solidabis/">Solidabis Oy</a> jo hoksautti minua haasteen alkamisesta Linkkarin puolella, joten olisi hiukan noloa, jos en edes kokeilisi.</li> </ol> <p>Aloitin haasteen jo jokin aikaa sitten. Kuvittelin saavani kirjoitettua jo siitä, mitä en tiedä ja, miten olen ihan hukassa, mutta ilmeisesti lörpöttelyä saa aikaan jo pelkästään taustasta ja motivaatiosta.</p> Tabu: Työpaikan vaihtaminen 2021-08-21T19:30:29Z https://samimaatta.fi/kirjoitukset/tabu-tyopaikan-vaihtaminen/ <!--StartFragment--> <p>Työpaikan vaihtaminen vaikuttaa olevan tietynlainen tabu. Tämän mainitsiminen tehdään hiljaa perheelle, kavereille ja vain lähimmille työkavereille. Erityisesti töissä tämän mainitsiminen tuntuu synniltä.</p> <p>Se tehdään varovasti: “Hei! Ennen, ku meet niin mulla ois jotain, mistä puhuu. Ootko huomannu niiden sivuilla, että siellä ois paikka auki? Joo, sehän on tosi mielenkiintosen olonen. Sais keskittyy just siihen omaan ydinosaamiseen.”</p> <p><em>Hiljaisuus.</em></p> <p>“Mä oon miettiny, et mä hakisin sitä.”</p> <p><em>Hiljaisuus.</em></p> <p>“Joo siis kyllähän mä oon nyt tykänny olla täällä, mut kyllä toi paikka vois tarjota mulle jotain muita alueita, joissa kehittyä.”</p> <p>Tilanne on salaisuus. Jälkikäteen tunnet syyllisyyttä siitä, että edes kerroit.</p> <p>Työkaverisi saattaa miettiä, että uskaltaako sinulle enää uskoutua epämiellyttävistä työasioista, koska ne voivat vahvistaa haluasi lähteä.</p> <p>Hän saattaa miettiä, että mitä kaikkea sinulle kannattaa opettaa, kun viet juuri opetetut taidot mennessäsi.</p> <p>Ehkäpä painavin kysymys, joka kolkuttaa hänen takaraivossaan on</p> <p><strong>“Voiko sinun luottaa sitoutuvan enää uusiin työtehtäviin, kun olet jo henkisesti ulkona?”</strong></p> <p>Mistä tämä johtuu? Sille on varmasti useita syitä, mutta alla muutama.</p> <ol> <li>Työpaikan vaihtaminen nähdään lausuntona nykyistä työpaikkaa vastaan. “Eikö työ riitäkään sinulle?” tai “Luuletko olevasi parempi kuin me?”</li> <li>Tuttu lausahdus on “Perehdyttäminen on kallista”. Yritys tai organisaatio panostaa paljon uuteen työntekijään ja on erilaisia arvioita siitä, milloin uudesta työntekijästä tulee tuottava työntekijä.</li> <li>Työpaikalla on valmiiksi suhtauduttu työntekijään siten, että he eivät lähde. Joissain paikoissa tehdään monen kymmenen vuoden uria. Tässä ei ole mitään väärää, mutta se voi muuttaa työpaikan kulttuuria siihen suuntaan, että lähtevä työntekijä nähdään menetyksenä.</li> </ol> <h2 id="kulttuurin-muutos" tabindex="-1">Kulttuurin muutos</h2> <p>Mainitut kohdat voidaan nähdä toisinkin.</p> <ol> <li> <p>Valtion organisaatiossa voidaan käyttää tulospalkkiomallia, jossa päätetään tulosmittarit, joiden saavuttamisesta organisaatio saa tulospalkkion, kun tavoite toteutuu. Yksi näistä voi olla henkilökierto. Tämä tarkoittaa sitä, että vuoden aikana keskimäärin <em>x</em> henkilöä käy muissa tehtävissä toisessa organisaatiossa. Tämä on omiaan luomaan kulttuuria, jossa</p> <ol> <li>työpaikan ja tehtävien vaihtamiseen suhtaudutaan normaalina ja toivottavanakin asiana.</li> <li>työpaikan vaihtaminen nähdään oppimistilanteena.</li> <li>perehdyttämisen pitää olla tehokasta, jotta mahdollinen uusi korvaaja saadaan nopeasti mukaan työn arkeen.</li> </ol> </li> <li> <p>Onko perehdytys kallista siksi, että opittavaa on oikeasti paljon ja osaamisen täytyy olla syvää? Vai onko perehdyttäminen tehotonta ja sitä kautta kallista? Minkälainen olisikaan organisaation perehdytys, jonka visiona olisi olla “Paras perehdyttäjä”?</p> </li> <li> <p>Kulttuuri voi olla päinvastainen: Organisaatioon kuuluukin tulla joksikin aikaa ja sitten vaihtaa maisemaa. Työpaikan vaihtaminen nähdään luonnollisena vaiheena työntekijän elämässä ja organisaation elinkaaressa.</p> </li> </ol> <h2 id="miten-organisaatio-voi-hyotya-lahtevasta-tyontekijasta" tabindex="-1">Miten organisaatio voi hyötyä lähtevästä työntekijästä?</h2> <h3 id="henkilokierto" tabindex="-1">Henkilökierto</h3> <p>Valtion työntekijän on mahdollista hakea valtion julkisesti avoinna oleviin paikkoihin – kuten kuka tahansa muukin. Jos kyseessä on määräaikainen pesti, niin puhutaan henkilökierrosta. Henkilö menee määräajaksi uusiin tehtäviin ja voi palata vanhaan virkaansa määräajan päätyttyä.</p> <p>Tärkeää tässä tapauksessa on tehdä selkoa siitä, mitä lähtevän työntekijän organisaatio voi <strong>oppia</strong> työntekijän uusista kokemuksista. Mitä opittavaa uusista työtehtävistä on ja miten nykyinen organisaatio voi hyötyä tästä?</p> <h3 id="tyonantajakuva" tabindex="-1">Työnantajakuva</h3> <p>Mikäli työntekijä on lähtemässä pysyvästi, niin eikö organisaation ole tärkeää, että nykyinen työ ja työympäristö on niin miellyttävä, että lähtevä työntekijä haluaa jatkossakin olla yhteydessä organisaatioon? Sen sijaan, että toivotetaan “Heissulivei!”, niin sanotaankin, että odotetaan innolla kuulumisia ja yhteistyökuvioita seuraavasta paikasta käsin.</p> <h2 id="tabun-rikkominen" tabindex="-1">Tabun rikkominen</h2> <p>Ihmisillä tulisi olla vapaus muovata juuri itsensä näköinen ura. Tämä voi tarkoittaa oman paikkansa etsimistä hyppimällä paikasta toiseen tai löytämällä se turvasatama, jossa on hyvä olla ja kehittää omia taitojaan. Kenenkään ei pitäisi joutua häpeämään valintaansa.</p> <!--EndFragment--> Mathematics as a Language 2021-07-12T15:19:56Z https://samimaatta.fi/en/mathematics-as-a-language/ <p>“Mathematics is a universal language” is a statement that many have probably heard in their life. Why isn’t it taught like one?</p> <h2 id="similarities-in-teaching-math-and-a-language" tabindex="-1">Similarities in Teaching Math and a Language</h2> <p>Let’s look at some building blocks of a language lesson. This is by no means an exhaustive list, but something to get us used to the idea of drawing lines between math and a language.</p> <ol> <li><strong>Vocabulary</strong>. In a language textbook you have pages lined with vocabulary and similarly you could say that you have vocabulary in maths. It’s the definition of the new concept, or a new formula.</li> <li><strong>Example phrases.</strong> Next you might have pictures of talking heads that are saying phrases relevant to the chapter’s theme. In mathematics the equivalent could be the various examples where we use a new formula in different situations.</li> <li><strong>Practising the phrases.</strong> Then you move onto actually practising the phrases. This might be that you read a phrase out loud switching up a word here and there. In mathematics these could be the easier, mechanical where some of the numbers have been changed compared to the examples.</li> <li><strong>Discussion and improvisation.</strong> In language lessons you might then move on to more free form dicussion where you play with the language. You improvise and come up with situations where you could use the language and the phrases you just learned. Where is discussion and improvisation in mathematics? Sure we have our ‘problem solving’ and ‘word problem’ tasks, but I would hardly call them improvisation with maths.</li> </ol> <h2 id="what-to-learn-from-languages" tabindex="-1">What to Learn from Languages?</h2> <p>Learning a language becomes easier when you relate it to your life. That’s why I think it often starts with topics that answer questions like “How do I describe my family?” and “How do I talk about my day or my plans for tomorrow?”</p> <p>I feel that in math we focus too much on repeating the vocabulary (concepts, definitions, formulas) through examples and tasks, but we forget about coming up with situations where we use, what we have learned. This also prevents the students from discussing math meaningfully and within their own context.</p> <p>I hope this will spark up a conversation on why and how we teach maths. I think that discussion and improvisation in mathematics should be emphasized more.</p> <p>We should have <strong>discussion</strong> and <strong>improvisation</strong> in mathematics, so we could better understand what relevance math has in our lives and also to think how you can already use your known skills in a given situation relating to mathematics.</p> <h2 id="tasks-and-facilitation-to-support" tabindex="-1">Tasks and Facilitation to Support</h2> <p>How should we go about, so we can actually encourage improvisation and discussion in math lessons? This probably requires its own post, but let’s tackle it a bit here.</p> <h3 id="tasks" tabindex="-1">Tasks</h3> <ul> <li>Open ended tasks: Such tasks that don’t only have one solution. Better yet: They don’t only use the knowledge you have acquired in class.</li> <li>Invention tasks: Much like open ended tasks, but students are tasked with coming up with a specific thing. For example, they could expected to come up with a way to measure the sustainability of a plastic bag.</li> <li>Malcolm Swan’s (2016.) Collaborative Learning describes many great, discussion-based approaches to mathematics.</li> </ul> <h3 id="facilitation" tabindex="-1">Facilitation</h3> <ul> <li>Facilitate a dialogue: As a teacher don’t pass judgment on a student’s answer, but rather encourage other students to take part in the discussion. Phrase like “Sounds interesting. X, what do you think of Y’s idea?” gives more power to student discussion.</li> <li>Don’t ask questions which you answer yourself or are just looking for another student to answer correctly. Instead always give time to talk about in pairs, or small groups and then gather answers afterwards.</li> </ul> <h2 id="inspiration-for-the-post" tabindex="-1">Inspiration for the Post</h2> <p>This post was partly inspired by <a href="https://wac.colostate.edu/llad/v4n1/jamison.pdf">the article Learning the Language of Mathematics by Robert E. Jamison</a> and by my own experiences learning German and teaching Finnish part time in Germany.</p> Geometric Numbers 2021-05-15T00:00:00Z https://samimaatta.fi/en/geometric-numbers/ <p> There exists a mathematical concept called an <strong>arithmetic number</strong>. You can check it out more in-depth from this <a rel="noreferrer noopener" href="https://en.wikipedia.org/wiki/Arithmetic_number" data-type="URL" data-id="https://en.wikipedia.org/wiki/Arithmetic_number" target="_blank">wikipedia article about arithmetic numbers</a>. </p> <p> In short, a number $a \in \mathbb{Z}$ is called an arithmetic number if the mean of its divisors is also an integer. </p> <h2>Example</h2> <p> For example, number $14$ is an arithmetic number. Let's prove this by checking if the conditions above apply. </p> <p> Divisors of the number $14$ are numbers $1, 2, 3, 7$ and $14$. The mean of the divisors is </p> <p>$$\frac{1 + 2 + 7 + 14}{4}=\frac{24}{4}=6.$$</p> <p> The mean $6$ is an integer, so number $14$ is an arithmetic number. </p> <h2>What are Geometric Numbers?</h2> <p> Spoilers! There is no such thing as a <strong>geometric number</strong> (at least according to my quick Googling). So, let's invent them! For this we can look back to arithmetic numbers. What are they made of? </p> <p>For a number to be arithmetic we look at its</p> <ol> <li>divisors,</li> <li>the divisors' arithmetic mean and</li> <li>if the mean is an integer.</li> </ol> <p> We can device an analogue for the geometric number. We can see that the defining aspect of an arithmetic number is the <strong>arithmetic</strong> mean. Maybe for a geometric number we could calculate a geometric mean? Does such a thing exist? A geometric mean does exist based on this <a rel="noreferrer noopener" href="https://en.wikipedia.org/wiki/Geometric_mean" data-type="URL" data-id="https://en.wikipedia.org/wiki/Geometric_mean" target="_blank">wikipedia article about the geometric mean</a>. So, now we have the building blocks for a definition. </p> <h2>Definition of a Geometric Number</h2> <p> A number $a \in \mathbb{Z}$ is a <strong>geometric number</strong> if the geometric mean $g_m$ of its divisors is an integer. </p> <h2>Examples of Using the Definition</h2> <p> Let's take a look numbers $5$ and $9$. The questions that we need to answer are </p> <ol> <li>What are the divisors of the numbers?</li> <li>Are the geometric means of the divisors integers?</li> </ol> <h3>Example 1</h3> <p>Let's answer the questions for the number $5$.</p> <p> $5$ is a prime, so the only divisors are $1$ and $5$. Let's calculate the geometric mean of the divisors. There are two divisors, so the degree of the root is $2$. </p> <p>The geometric mean is</p> <p>$$g_m=\sqrt{1 \cdot 5}=\sqrt{5}=2.236\ldots.$$</p> <p> Now we can see that the geometric mean is not an integer, so it follows that $5$ is not a geometric number. </p> <h3>Example 2</h3> <p> The divisors of $9$ are $1,3,9$, so the degree of the root is $3$. Let's calculate the geometric mean </p> <p>$$g_m=\sqrt[3]{1 \cdot 3 \cdot 9}=\sqrt[3]{27}=3.$$</p> <p> Now the mean is an integer, so $9$ is an actual geometric number! </p> <h2>Geometric Numbers in Teaching</h2> <p> Since geometric numbers don't acually exist they provide a good pedagogical tool for discovery in mathematics teaching. Here are some tasks to get started with geometric numbers </p> <ol> <li> Determine which of the numbers less than $25$ are geometric numbers. </li> <li>Which kind of numbers seem to be geometric numbers?</li> <li> Can you make any generalisations about which kind of numbers are geometric numbers? </li> </ol> Setting up Your Own Website (with Wordpress) 2021-05-02T00:00:00Z https://samimaatta.fi/en/setting-up-your-own-website-with-wordpress/ <p> <strong>9.8.2022 update:</strong> This is a post from my old site, which was built with Wordpress. It doesn't reflect the creation of this site with Eleventy and Netlify, but I decided to leave it as a record! </p> <!-- wp:paragraph --> <p> As I had gotten my own website up and was wondering "What to post?" I figured it would make sense to post my journey to actually realize the website. So here goes. </p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>Basic Building Blocks of a Website</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p> For me, it makes most sense to divide the creation (and maintenance) of a website into three parts: </p> <!-- /wp:paragraph --> <!-- wp:list {"ordered":true} --> <ol> <li>A domain - <strong>quenched.fi</strong></li> <li>A hosting service - <strong>domainhotelli.fi</strong></li> <li>A website editor - <strong>Wordpress</strong></li> </ol> <!-- /wp:list --> <!-- wp:paragraph --> <p> 'Building a house' is an apt analogy for the parts of a website. A <strong>domain</strong> is like your address to your house. <strong>Hosting </strong>is like renting a piece of a property for your house. The <strong>website editor</strong> is like architect or the construction company to build your house. </p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>Things I Spent Money on</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p> First things first: Things that are costing me money are the <strong>domain</strong> and the <strong>hosting</strong>. The domain costs me around 9 €/year and the hosting about 35 €/year for the first year. The hosting is about half off for the first year. Regular prices seemt to be around 80 €/year. I guess this is how they trap you, since migrating your stuff to another hosting service is a hassle (<strong>update</strong>: which I am finding out now...). I have to look into that some time in the future! </p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>The Domain</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p> This will be <strong>the name of your website</strong>, if you are willing to pay premium for hosting. Usually free hosting doesn't let you use your own domain if you have one. This is why you see website names like <span lang="fi">"nönnönöö.wordpress.org"</span> or "nannannanaa.medium.com". They didn't want to pay for hosting, or they simply didn't get a domain for themselves. (I actually think the main reason for getting a domain is that you can't come up with a good name. It's hard!) Those kinds of websites do make it easier to try out whatever kind of content you want to do, so the risks are minimal. </p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>The Hosting</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p> It seems like I effectively rented the domain for a year from <a href="https://www.domainhotelli.fi/" data-type="URL" data-id="https://www.domainhotelli.fi/" lang="fi">Domainhotelli</a>. It's a Finnish provider since I wanted the ".fi" ending. I looked through other hosting options, but settled back to <span lang="fi">Domainhotelli</span>, since it seemed to be quite cheap and solid for the price. </p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>The Website Editor</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p> Once you have your hosting set up, you have to decide in what way you want to manage your website. Mainly how it looks to the audience and how you interact with it yourself. </p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p> Sure you can just start writing HTML and then upload it to the hosting platform (I don't actually know how. Let's see in the future.), but you make it easier for yourself to simply choose a hosting service, which allows easy installation of a website editor. There are many choices (to my understanding) and I only chose <a href="https://wordpress.org/" data-type="URL" data-id="https://wordpress.org/">Wordpress</a>. The biggest reason being that I wanted to display mathematics on my website and noticed that the publication for Finnish math education <a href="https://dimensiolehti.fi/" data-type="URL" data-id="https://dimensiolehti.fi/">Dimensio</a> was using Wordpress. They are displaying maths, so it must work, right? I am actually still working on that, but it looks promising. </p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>A Lot to Learn</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p> There is still a lot to learn about useing Wordpress: from its UI to its many plugins - and also just plainly how to deliver information in an entertaining way. Luckily all of this is practice, so I get a nice head start to it! </p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p> I also want to focus on making my website as accessible as possible for any assistive technologies, so let me know if there are any problems with them. </p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p> Shoot me a message, if you need some help with setting up your own website. In the end, we are here to help others. </p> <!-- /wp:paragraph -->
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="https://samimaatta.fi">
<title>Sami Määttä | samimaatta.fi</title>
<link href="https://samimaatta.fi/feed.xml/" rel="self"/>
<link href="https://samimaatta.fi"/>
<updated>2025-07-03T19:50:14Z</updated>
<id>https://samimaatta.fi</id>
<author>
<name>Sami Määttä</name>
</author>
<entry xml:lang="en">
<title>The Stop Killing Games directive</title>
<link href="https://samimaatta.fi/en/the-stop-killing-games-directive/"/>
<updated>2025-07-03T00:00:00Z</updated>
<id>https://samimaatta.fi/en/the-stop-killing-games-directive/</id>
<content type="html"><p>Now that <a href="https://www.stopkillinggames.com/">Stop Killing Games the petition has gotten a million signatures</a>, it will move into whatever the next phase of these petitions is in the EU. But it is certain that it will move forward.</p> <p><strong>Update 3.7.2025</strong>: It's still highly encourage to sign the petition if you haven't! Many of the signatures might be invalid, so it is good to have a solid buffer of accepted signatures.</p> <p>I don't have much knowledge or experience on how EU does directives in general, but through my work I have seen the effects of the European Accessibility Act (EAA for short), which was a directive as well - which I think the Stop Killing Games initiative will turn into as well.</p> <p>I'm mostly focusing on concerns that people and companies might have about the implementation of the initiative.</p> <h2 id="directives" tabindex="-1">Directives</h2> <p>Firstly it's important to understand that a directive merely &quot;directs&quot; the legislation a EU member state has to form and enforce. This can mean that the states have a lot of freedom when it comes to forming the legislation. Of course, for most effect the directive should be clear in what it aims to do, so that the states can form uniform legislation for the whole EU market area.</p> <p>That is also the biggest strength of these kinds of directives: They first and foremost affect the kinds of services and products the EU market accepts. These services and products must adhere to the legislation that enterst these markets - and the EU is a sizable market where companies want to be able to sell their products.</p> <h3 id="european-accessibility-act-eaa" tabindex="-1">European Accessibility Act (EAA)</h3> <p>The <a href="https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32019L0882">directive &quot;European Accessibility Act&quot; came into force on 17th of April 2019 (europa.eu)</a>. The legislation complying with the EAA came into effect 28th of June 2025. The EU member states had six years to form the legislation and means to monitor its implementation. (Spoilers: Not all member states are there yet.)</p> <p>The EAA greatly affected the industry I'm working in: Accessible publishing. It states that the EU member states have to define legislation such that the publishers have to publish accessible ebooks. This means that people with disabilities, that affect their reading of printed books, would be able to use ebooks without hindrances.</p> <p>Or as the directive defines 'persons with disabilities':</p> <blockquote> <p>&quot;-- persons who have long-term physical, mental, intellectual or sensory impairments which in interaction with various barriers may hinder their full and effective participation in society on an equal basis with others;&quot;</p> </blockquote> <p>This places a lot of responsibility on the publishers. Any ebook that enters the EU market after the 28th of June 2025 should be accessible and its accessibility information (metadata) should be visible to the consumer through whatever e-commerce platform they use to buy the ebooks.</p> <p>Might be needless to say, but this can and has scared publishers:</p> <ul> <li>What kind of know-how will they need to comply with the law?</li> <li>How do they make accessible ebooks?</li> <li>How do they provide the information of the accessibility on the ebook?</li> <li>What if the changes prove to be expensive?</li> <li>What if they are a small publisher that doesn't have the skills or the resources to comply with the law?</li> <li>What if the ebook they make isn't possible to make accessible? This might be a result of a highly experimental book and reading experience.</li> </ul> <h2 id="exceptions" tabindex="-1">Exceptions</h2> <p>The concerns I mentioned at the beginning are partly dealt with the exceptions that the Stop Killing Games (later SKG) directive would maybe (most likely, probably) have.</p> <p>Note that this is only from my experience with the EAA and what it is about. I think it's likely that similar 'general exceptions' will make their way into the SKG directive. Also depending on the game publishing lobbying, there could more or different kinds of exceptions. Road to the actual directive will be long.</p> <p>Let's get into some of the exceptions present in the EAA.</p> <h3 id="disproportional-burden" tabindex="-1">Disproportional burden</h3> <p>Something that might be said about games:</p> <blockquote> <p>&quot;We don't have the resources to have our games be playable after our own support.&quot;</p> </blockquote> <p>The EAA directly talks about this kind of situation and gives way for the publishers to claim &quot;disproportional burden&quot;:</p> <blockquote> <p>&quot;For reasons of proportionality, accessibility requirements should only apply to the extent that they do not impose a <strong>disproportionate burden on the economic operator</strong> concerned, --&quot;</p> </blockquote> <p>The reasons to claim disproportional burden would be varied, and in the book publishing space, it always requires an explanation to a governing body.</p> <h3 id="fundamental-alteration" tabindex="-1">Fundamental alteration</h3> <p>This is something I have seen propped up as a short coming of the Stop Killing Games initiative:</p> <blockquote> <p>&quot;What about games that wouldn't have a realistic possibility to provide end-of-life plans? This will limit the kinds of games people and companies make!&quot;</p> </blockquote> <p>This is something that a publisher might say:</p> <blockquote> <p>&quot;Our ebook is an experience that can't be made into an accessible ebook. What about now?&quot;</p> </blockquote> <p>This is handled by the clause on &quot;fundamental alteration&quot;:</p> <blockquote> <p>&quot;For reasons of proportionality, accessibility requirements should only apply to the extent that -- that they do not require a significant change in the products and services which would result in their <strong>fundamental alteration</strong> in the light of this Directive.&quot;</p> </blockquote> <p>This might mean that the game experience would be somehow fundamentally altered, because of making it possible to keep going by the community or some other party, that it would not be same experience anymore. It is difficult to say what kind of situation would qualify as a &quot;fundamental alteration&quot; - and I don't know how applicable this particular clause would be for games.</p> <h3 id="limited-resources-of-independent-game-developers" tabindex="-1">Limited resources of independent game developers</h3> <p>Independent game developers (later &quot;indie developers&quot;) work with limited resources when it comes to money and people. It might be likely that some obligations of the SKG directive could prove too expensive for indie developers to implement.</p> <p>In the EAA, exceptions are made for microenterprises. A microenterprise doesn't need to comply with the accessibility requirements. A microenterprise is defined as</p> <blockquote> <p>&quot;-- an enterprise which employs fewer than 10 persons and which has an annual turnover not exceeding EUR 2 million or an annual balance sheet total not exceeding EUR 2 million;&quot;</p> </blockquote> <p>I believe many indie developers would fit this description and be exempted from the responsibilities. Although it is highly encouraged that every actor that wants to enter the EU markets should comply with the directive and its respective legislation. It might be that game distributors (for example Steam) would want to only sell games that adhere to the directive's legislation, so they would require all actors to publish these kinds of games.</p> <p>That is, if the distributors are part of the directive.</p> <h3 id="eaa-s-shortcoming-the-backlist" tabindex="-1">EAA's shortcoming: the backlist</h3> <p>One of EAA' shortcomings is the backlist of ebooks. These are the ebooks that already exist and not accessible. They continue being in the EU market and the directive didn't specify what should be done about the existing ebooks.</p> <p>This has led to varying interpretations of the directive and implementations of the legislation:</p> <blockquote> <p>&quot;For example: <a href="https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000047984432">France have allowed for a 5-year grace period</a>. Countries such as <a href="https://www.regeringen.se/rattsliga-dokument/statens-offentliga-utredningar/2021/05/sou-202144/">Sweden opted to exclude backlist titles</a> from their legislation, however, <a href="https://www.regeringen.se/rattsliga-dokument/proposition/2022/12/prop.-20222342">more recent Swedish legislation</a> appears to suggest the excluded content is web-based PDF documents and may not encompass all backlist ebooks. Other regions such as <a href="https://julkaisekaikille.fi/saavutettava-e-kirja/vaatimukset-laissa/">Finland</a> and <a href="https://www.sik.dk/erhverv/produkter/tilgaengelighed-produkter-og-tjenester-0/bogbranchen">Denmark</a> believe that the Directive applies equally to existing and newly published titles and are implementing legislation and issuing guidance to support that approach.&quot;</p> <cite> <p>Source: <a href="https://inclusivepublishing.org/blog/eaa-backlist-confusion-looking-at-regional-differences/">EAA Backlist Confusion – Looking at Regional Differences (Inclusive Publishing)</a></p> </cite> </blockquote> <p>Would the existing games need to retrofitted to comply with the SKG directive? Short answer: No. It is specifically stated in the <a href="https://www.stopkillinggames.com/faq">SKG initiative's FAQ</a> that is not the aim of the initiative:</p> <blockquote> <p>&quot;For existing video games, it's possible that some being sold cannot have an &quot;end of life&quot; plan as they were created with necessary software that the publisher doesn't have permission to redistribute. Games like these would need to be either retired or grandfathered in before new law went into effect. <strong>For the European Citizens' Initiative in particular, even if passed, its effects would not be retroactive.</strong> So while it may not be possible to prevent some existing games from being destroyed, if the law were to change, future games could be designed with &quot;end of life&quot; plans and stop this trend.&quot;</p> </blockquote> <p>I believe similar kind of confusion will be averted when the directive wouldn't be retroactive and there wouldn't be a &quot;backlist&quot; of games.</p> <h2 id="bonus-digital-rights-management" tabindex="-1">Bonus: Digital Rights Management?</h2> <p>The EAA actually enforces one clause about the digital rights management (&quot;DRM&quot;). Usually this is to ensure that a buyer of an ebook won't be able to distribute the ebook freely to others.</p> <p>Unfortunately DRMs tend to negatively affect the reading experience and potentially block an accessible reading experience. That is why there is the following clause on ebook:</p> <blockquote> <p>&quot;(vi) ensuring that digital rights management measures do not block accessibility features.&quot;</p> </blockquote> <p>Might the SKG directive be a way to affect invasive DRMs in games? There are plenty of examples of DRM software requiring</p> <ul> <li>root access to your computer</li> <li>slowing or blocking your gaming.</li> </ul> <p><a href="https://www.gog.com/blog/what-exactly-is-drm-in-video-games-and-why-should-you-care/">Read GOG's piece on DRM if you want to know more</a>.</p> </content>
</entry>
<entry xml:lang="en">
<title>Fixing slow download speeds on Windows 11</title>
<link href="https://samimaatta.fi/en/fixing-slow-download-speeds-on-windows-11/"/>
<updated>2025-03-16T00:00:00Z</updated>
<id>https://samimaatta.fi/en/fixing-slow-download-speeds-on-windows-11/</id>
<content type="html"><p>I had noticed slow download speeds especially when downloading games through Steam or GOG for example. This post was prompted by trying to download &quot;Split Fiction&quot; through the EA App.</p> <p>Solution was found from <a href="https://www.thewindowsclub.com/window-auto-tuning-in-windows-10">Window Auto-Tuning in Windows 11/10; Should you disable it or not?</a>, (<a href="https://archive.ph/l96aN">Archive link</a>). Next I have written it here as well.</p> <h2 id="solution" tabindex="-1">Solution</h2> <p>A setting called &quot;Receive Window Auto-Tuning Level&quot; may be disabled by default. Here is how to check if it is disabled:</p> <ol> <li>Open command prompt as an administrator and type <code>netsh interface tcp show global</code>.</li> <li>If &quot;Receive Window Auto-Tuning Level&quot; is set to <code>disabled</code>, then use command <code>netsh int tcp set global autotuninglevel=normal</code>.</li> <li>Restart your program of choice and restart the download.</li> </ol> <p>This worked for me. Hopefully it works for you!</p> </content>
</entry>
<entry xml:lang="en">
<title>Creating a custom Slugify filter in Eleventy</title>
<link href="https://samimaatta.fi/en/creating-a-custom-slugify-filter-in-eleventy/"/>
<updated>2025-01-12T00:00:00Z</updated>
<id>https://samimaatta.fi/en/creating-a-custom-slugify-filter-in-eleventy/</id>
<content type="html"><p>In the table you can see how Eleventy transforms some key letters in Finnish to slugs with Slugify.</p> <div role="region" class="table-wrapper" tabindex="0"> <table> <thead> <tr> <th>Letter</th> <th>Default</th> <th>Custom</th> </tr> </thead> <tbody> <tr> <td>ä</td> <td>ae</td> <td>a</td> </tr> <tr> <td>å</td> <td>(I actually don't know this one)</td> <td>a</td> </tr> <tr> <td>ö</td> <td>oe</td> <td>o</td> </tr> </tbody> </table> </div> <p>To achieve this custom transformation, I use <code>customReplacements</code> property in Slugify. Here is the code in my Eleventy config file:</p> <pre class="language-js"><code class="language-js">eleventyConfig<span class="token punctuation">.</span><span class="token function">addFilter</span><span class="token punctuation">(</span><span class="token string">"nordicSlugify"</span><span class="token punctuation">,</span> <span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token parameter">string</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><br> <span class="token keyword">return</span> eleventyConfig<span class="token punctuation">.</span><span class="token function">getFilter</span><span class="token punctuation">(</span><span class="token string">"slugify"</span><span class="token punctuation">)</span><span class="token punctuation">(</span>string<span class="token punctuation">,</span> <span class="token punctuation">{</span><br> <span class="token literal-property property">customReplacements</span><span class="token operator">:</span> <span class="token punctuation">[</span><br> <span class="token punctuation">[</span><span class="token string">"ä"</span><span class="token punctuation">,</span> <span class="token string">"a"</span><span class="token punctuation">]</span><span class="token punctuation">,</span><br> <span class="token punctuation">[</span><span class="token string">"å"</span><span class="token punctuation">,</span> <span class="token string">"a"</span><span class="token punctuation">]</span><span class="token punctuation">,</span><br> <span class="token punctuation">[</span><span class="token string">"ö"</span><span class="token punctuation">,</span> <span class="token string">"o"</span><span class="token punctuation">]</span><span class="token punctuation">,</span><br> <span class="token punctuation">]</span><span class="token punctuation">,</span><br> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> <p>Then I use the custom filter like so: <code>{{ title | nordicSlugify}}</code>. This might be in the front matter of a page.</p> <h2 id="relevant-links" tabindex="-1">Relevant links</h2> <ul> <li><a href="https://www.11ty.dev/docs/filters/">Eleventy documentation on filters</a>.</li> <li><a href="https://www.npmjs.com/package/@sindresorhus/slugify#customreplacements">Slugify's documentation on customReplacements</a>. The filter is based on @sindresorhus's work.</li> </ul> <h2 id="backstory-for-my-problems-and-this-post" tabindex="-1">Backstory for my problems and this post</h2> <p>I upgraded a site from Eleventy 2.0 to Eleventy 3.0. <a href="https://www.11ty.dev/docs/plugins/upgrade-help/">The upgrade helper</a> is handy, so use it. For a relative novice like me the docs can be quite confusing and the helper not that helpful.</p> <p>I think my problem stemmed from the fact that Slugify became a bundled filter with Eleventy, so my previous configuration for using it didn't work well together with Netlify's deployment.</p> <p>Or then I have something messed up with my configuration either on Eleventy's side or Netlify's side. I don't know. Now it seems to be working!</p> </content>
</entry>
<entry xml:lang="fi">
<title>Lukemisen muoto ei ole yhdentekevä, ja muita väärinkäsityksiä</title>
<link href="https://samimaatta.fi/kirjoitukset/lukemisen-muoto-ei-ole-yhdentekeva-ja-muita-vaarinkasityksia/"/>
<updated>2024-09-16T00:00:00Z</updated>
<id>https://samimaatta.fi/kirjoitukset/lukemisen-muoto-ei-ole-yhdentekeva-ja-muita-vaarinkasityksia/</id>
<content type="html"><p>Tämä on osa laajempaa keskustelua siitä, että &quot;onko digitaalisuus mennyt liian pitkälle&quot; ja &quot;e-kirjasta lukeminen ei ole sama asia kuin painetusta kirjasta lukeminen&quot;. En varsinaisesti ota kantaa näihin. Kiinnitän huomioni siihen, että yleisessä keskustelussa harvoin vaikutetaan ymmärtävän, mikä digitaalinen kirja on.</p> <p>Helsingin sanomien mielipidekirjoituksessa <a href="https://www.hs.fi/mielipide/art-2000010693208.html">Lukemisen muoto ei ole yhdentekevä</a> esitettiin useampi käsitys siitä, mitä lukeminen muusta kuin painetusta kirjasta on.</p> <p>Kirjoittaja kritisoi sitä, että aiempi kolumni aiheesta väitti digitaalisen kirjan ja painetun kirjan lukemisen olevan sama asia.</p> <blockquote> <p>&quot;Hän esitti [kolumnissa], että tärkeintä on lukeminen, ei sen formaatti. Ajattelen toisin kuin Mäkinen.&quot;</p> </blockquote> <p>Puhun digitaalisesta kirjasta ja e-kirjasta ristiin tässä tekstissä.</p> <h2 id="aeani-ja-e-kirja-ovat-erilaisia-kokemuksia" tabindex="-1">Ääni- ja e-kirja ovat erilaisia kokemuksia</h2> <blockquote> <p>&quot;Esimerkiksi äänikirjan kuunteleminen toisen ihmisen tulkitsemana on aivan erilainen kokemus kuin kirjan lukeminen. Myös kirjan lukeminen paperilta on erilaista verrattuna digikirjan lukemiseen ruudulta.&quot;</p> </blockquote> <p>En ole eri mieltä. Ne ovat erilaisia <strong>kokemuksia</strong> - erityisesti äänikirjan kuuntelu. Tämä ei ole argumentti sen puolesta, että ne olisivat jotenkin huonompia tapoja lukea ja kokea kirjallisuutta.</p> <p>E-kirjan lukeminen lukulaitteelta on todella lähellä painetun kirjan lukemista. Toki fiilis on erilainen, koska formaattikin on erilainen, mutta tämäkään ei ole kummoinen argumentti puolin tai toisin.</p> <p>Kirjoituksen alussa ei siis oikein käy ilmi, miksi kirjoittaja ei pidä digitaalisia kirjoja hyvänä lukemisen muotona.</p> <h2 id="e-kirjaa-ei-voi-omistaa" tabindex="-1">E-kirjaa ei voi omistaa</h2> <blockquote> <p>&quot;Digitaalinen aineisto voi myös koska tahansa muuttua, tai jopa kadota, mikäli kirjailija vetää teoksensa pois palvelusta.&quot;</p> </blockquote> <p>Asia esitetään ikään kuin tämä olisi erityisesti e-kirjojen ongelma. Kuten painetun kirjan, niin e-kirjankin voi ostaa omaksi. Painetun kirjan painaminen saatetaan myös lopettaa, joten tekeekö sekin painetusta kirjasta huonomman?</p> <p>Ennemmin pitäisi kritisoida nykyisiä jatkuvia tilausmalleja, joissa e-kirja vuokrataan omaksi, eikä osteta. Tähän kirjoittaja ottaakin toki kantaa myöhemmässä kohdassa.</p> <p>Nyt myös valtakunnallisesta e-kirjastosta voi lainata e-kirjoja.</p> <h2 id="e-kirjan-lukemisesta-on-helpompi-hairahtua" tabindex="-1">E-kirjan lukemisesta on helpompi hairahtua</h2> <blockquote> <p>&quot;Digitaaliset alustat houkuttelevat halvalla sisällöllään, mutta jos samalta laitteelta löytyy myös Netflix, Youtube ja Tiktok, mitä sovellusta avataan todennäköisimmin?&quot;</p> </blockquote> <p>Voin hyvin kuvitella, että tämä on totta. Jos käyttää e-kirjojen lukemiseen tarkoitettua lukulaitetta, niin riski on pienempi, koska yleensä nämä on tarkoitettu pelkästään e-kirjan lukemiseen.</p> <p>En kuitenkaan ole varma, että onko käytetyn laitteen tai esineen estovaikutus niin suuri, etteikö käsi hamuaisi silti älylaitteen helpommin saatavilla olevaa palvelua.</p> <p>Lopulta: Miksei tätä voi nähdä myös hyvänä asiana? Jos E-kirja on Netflix-painikkeen vieressa, niin ehkä jollain kertaa se onkin se kirja, joka voittaa.</p> <h2 id="aeani-tai-e-kirjan-tekeminen-ei-vaadi-vaivannakoa" tabindex="-1">Ääni- tai e-kirjan tekeminen ei vaadi vaivannäköä</h2> <blockquote> <p>&quot;Painettu kirja on työläs tehdä ja vaatii vaivannäköä, mutta se on myös sen arvoista.&quot;</p> </blockquote> <p>Varsinkin, kun kirjaa tehdään painettu kirja edellä, niin e-kirjan laatu voi kärsiä. Tämä johtuu osittain siitä, että e-kirja nähdään sivutuotteena, joka tulee painetun kirjan ohella. Ne monesti tehdään jollain tavalla automatisoidusti, eikä siihen varata kunnollisia resursseja. Lopputulos on siksi huono.</p> <p>Vuodatan tuskan kyyneleen jokaiselle, joka on joutunut ostamaan tai lainaamaan e-kirjan ja on saanut vastineeksi PDF-tiedoston. Sitä ei voi minusta pitää e-kirjana (vaikka lain puolesta pidetäänkin). Jos ostaa e-kirjaa, niin kannattaa vähintään selvittää, että onko se EPUB-tiedosto. Nämä ovat niitä <strong>oikeita</strong> e-kirjoja. (Nekin on tosin voitu tehdä huonosti.)</p> <p>Hyvän ja saavutettavan e-kirjan tai äänikirjan teko todellakin vaatii vaivannäköä. Ehkä kirjoitan tästä oman julkaisun, jos pelkkä toteaminen tuntuu väistöliikkeeltä.</p> <h2 id="lukeminen-on-parasta-painetusta-kirjasta" tabindex="-1">Lukeminen on parasta painetusta kirjasta</h2> <p>Minusta ei. Elämme ajassa, jossa kirjoja ylipäänsä luetaan vähemmän. Minusta sillä ei ole väliä, missä muodossa kirjallisuus ilmenee, jos se tuo enemmän ihmisiä sen äärelle.</p> <p>Kaikilla ei myöskään ole mahdollista lukea painettua kirjaa. Jollakulla voi olla jokin vamma, joka estää painetun kirjan näkemisen tai pitelemisen käsissä. Tämä on julkisessa keskustelussa ehkä marginaalinen syy, eikä sitä tuoda juuri ikinä esille.</p> <h2 id="mika-e-kirjassa-toimii-paremmin-kuin-painetussa-kirjassa" tabindex="-1">Mikä e-kirjassa toimii paremmin kuin painetussa kirjassa?</h2> <p>Koska e-kirjat oman kokemukseni mukaan sivuutetaan liian helposti, niin nostan esille joitain niiden ominaisuuksia, joita pidän siis oikeasti parempina kuin painetussa kirjassa. Ei missään erityisessä järjestyksessä.</p> <p>E-kirjat voivat olla saavutettavia teknisillä apuvälineillä suoraan toisin kuin painetut kirjat. Esimerkiksi moni sokko käyttää ruudunlukijaa tietokoneella, jota ei voi käyttää painetun kirjan kanssa.</p> <p>E-kirjojen ulkoasussa voi muuttaa</p> <ul> <li>tekstin kokoa</li> <li>tekstin asettelua</li> <li>tekstin välistystä</li> <li>teemaa, monessa lukuohjelmassa on teemoja, kuten tumma, seepia tai suuri kontrasti</li> <li>tekstin kirjasinta (fonttia).</li> </ul> <p>Nämä liittyvät käytettyyn lukulaitteeseen:</p> <ul> <li>lukulaite on kevyempi kuin samansisältöinen suuri kirja (ja kirjat eivät myöskään vie lisää hyllyssä)</li> <li>lukulaitteiden taustavalon avulla voi lukea hämärässä tai pimeässä.</li> </ul> <h2 id="mita-huonoja-puolia-e-kirjassa-on-verrattuna-painettuun-kirjaan" tabindex="-1">Mitä huonoja puolia e-kirjassa on verrattuna painettuun kirjaan?</h2> <p>No, ehkä reiluuden nimissä mietin myös huonoja puolia. Ei erityisessä järjestyksessä:</p> <p>Jos e-kirja onkin PDF-tiedosto, niin painettu kirja on paljon parempi. PDF-tiedoston ulkoasua ei voi muuttaa yllä olevien keinojen avulla.</p> <p>Tämä on omakohtainen kokemus, mutta painettuja kirjoja on helpompi jättää kesken. Eli minulle keskenjääneen e-kirjan hahmottaminen on hankalampaa, koska ei ole fyysistä kirjapinoa, jossa keskeneräiset kirjat (kyllä, monikossa) olisivat.</p> <p>Yleisimpiä argumentteja, joita näen painetun kirjan mielekkyydestä e-kirjoihin verrattuna: painetusta kirjasta saa selkeämmän kuvan siitä, missä kohtaa kirjaa on. Ei se kyllä ole ihan sama asia aavistella kirjan loppua, kun ei tarkalleen tiedä, milloin se on loppumassa. Tämä liittyy ennen kaikkea &quot;fiilikseen&quot;.</p> </content>
</entry>
<entry xml:lang="fi">
<title>Lainasanat matematiikassamme</title>
<link href="https://samimaatta.fi/kirjoitukset/lainasanat-matematiikassamme/"/>
<updated>2024-08-30T00:00:00Z</updated>
<id>https://samimaatta.fi/kirjoitukset/lainasanat-matematiikassamme/</id>
<content type="html"><p>Aivan kuten suomen kielen asiantuntija saattaa välillä kavahtaa epämääräisiä lauserakenteita tai suoranaisia kirjoitusvirheitä, niin samoin käy matematiikan alan asiantuntijoille.</p> <p>Viime aikoina silmiäni ovat rasittaneet (paremman sanan puutteessa) &quot;lainasanat&quot; tai anglismit eli englannin kielestä peräisin olevat suorat käännökset, jotka ovat suomeksi suoranaisia virheitä.</p> <p>Matemaattisessa tekstissä näitä merkintöjä saatetaan katsoa enemmän läpi sormien kavahtamatta vakiintuneiden käytäntöjen vuoksi.</p> <h2 id="prosenttiluvut" tabindex="-1">Prosenttiluvut</h2> <p>Englanninkielisessä tekstissä on tavallista kirjoittaa prosenttimerkki (%) yhteen luvun kanssa. Esimerkiksi &quot;17%&quot;. Tämä on kuitenkin suomeksi väärin.</p> <p>Oikea kirjoitusasu on jättää väli luvun ja prosenttimerkin välille &quot;17 %&quot;.</p> <p>Lisätietoa: <a href="https://kielitoimistonohjepankki.fi/ohje/prosenttimerkki/">Kielitoimiston ohjepankin artikkeli prosenttimerkistä</a>.</p> <h2 id="desimaalierotin" tabindex="-1">Desimaalierotin</h2> <p>Toinen englanninkielisestä tekstistä tuttu tapa on kirjoittaa desimaaliluvut desimaalipisteen, eikä desimaalipilkun kanssa. Esimerkiksi &quot;3.14&quot;.</p> <p>Suomenkielinen kirjoitusasu on käyttää desimaalipilkkua &quot;3,14&quot;.</p> <p>Oletan, että desimaalipisteen käyttäminen on peruja monista ohjelmistoista, jotka käyttävät desimaalipistettä desimaalipilkun sijasta. Olisi työlästä vaihtaa esitystapaa esimerkiksi tieteellisissä julkaisuissa.</p> <p>Lisätietoa: <a href="https://kielikello.fi/pisteita-ja-pilkkuja/">Kielikellon artikkeli pisteistä pilkuista</a>.</p> <h3 id="tuhaterotin" tabindex="-1">Tuhaterotin</h3> <p>Englanninkielisessä tekstissä tuhaterottimena käytetään pilkkua, joka yhdistettynä desimaalipilkkuun voi tuottaa hämmentäviä hetkiä. Esimerkiksi &quot;1,789&quot; kirjoitetaan suomeksi &quot;1 789&quot;.</p> <p>Tässä täytyy huomioida, että käytetty väli on <a href="https://fi.wikipedia.org/wiki/Sitova_v%C3%A4lily%C3%B6nti">'sitova välilyönti' (wikipedia)</a>, eikä suinkaan näppäimistöltä syntyvä välilyönnin tyhjä väli. Käytännössä tämä tarkoittaa sitä, että ruuduilla lukua ei jaeta välin kohdalta kahtia esimerkiksi rivinvaihdon takia.</p> <h2 id="miljardit-ja-biljoonat" tabindex="-1">Miljardit ja biljoonat</h2> <p>Miljardit ja biljoonat menevätkin iloisesti sekaisin aika ajoin eri paikoissa. Tämä johtuu siitä, että briteissä ja Yhdysvalloissa on käytetty niin sanottua 'lyhyttä asteikkoa' ja Suomessa (ja muuallakin maailmassa) käytetään 'pitkää asteikkoa'.</p> <p>Miljoona (pitkä asteikko) on &quot;million&quot; (lyhyt asteikko) kummassakin asteikossa eli 10<sup>6</sup>. Erot alkavat heti tämän jälkeen:</p> <ul> <li>Miljardi (pitkä asteikko) on &quot;billion&quot; (lyhyt asteikko) eli 10<sup>9</sup>.</li> <li>Biljoona (pitkä asteikko) on &quot;trillion&quot; (lyhyt asteikko) eli 10<sup>12</sup>.</li> </ul> <p>Lisätietoa: <a href="https://fi.wikipedia.org/wiki/Suurten_lukujen_nimet">Suurten lukujen nimet (wikipedia)</a>.</p> <h3 id="norjan-sijoitusrahasto" tabindex="-1">Norjan sijoitusrahasto</h3> <p>Erityisen hämmentäväksi tämä menee, kun nämä kaksi maailmaa kohtaavat. Innoitukseni tähän tekstiin tuli oikeastaan, kun näin Norjan rahastoja koskevan videon, jonka kommenteissa oltiin hämmentyineitä. Siellä ihmeteltiin, että oliko Norjalla nyt rahastossaan miljardeja kruunuja vai biljoonia dollareita - vai juuri toisinpäin.</p> <div class="grid col-2"> <picture><source type="image/webp" srcset="/img/h-RIOw_4Ie-1080.webp 1080w"><img loading="lazy" decoding="async" src="/img/h-RIOw_4Ie-1080.jpeg" alt="Kuvakaappaus viivakaaviosta, jossa rahaston arvo on noussut huimasti. Kaaviossa lukee, että vuonna 2024 sen arvo on 17,745 billion kroner." width="1080" height="1241"></picture> <picture><source type="image/webp" srcset="/img/nNhsUa8Ll9-1080.webp 1080w"><img loading="lazy" decoding="async" src="/img/nNhsUa8Ll9-1080.jpeg" alt="Sama kaavio kuin edellä, mutta dollareissa. Kaaviossa lukee, että vuonna 2024 sen arvo on 1,667 billion dollar." width="1080" height="1250"></picture> </div> <p>Kuvien lähde: <a href="https://www.nbim.no/">Norges Bank Investment Management (nbim.no)</a></p> <p>No, niin. Kaavioissa on parikin haastavaa asiaa.</p> <ol> <li>Englanninkielisyys kummassakin kaaviossa.</li> <li>Valuuttamuunnos kruunuista dollareihin.</li> </ol> <p>Käännettynä suomeksi rahaston arvo on siis</p> <ul> <li>Norjan kruunuissa 17 745 miljardia</li> <li>dollareissa 1 667 miljardia.</li> </ul> <h2 id="luvut-ja-numerot" tabindex="-1">Luvut ja numerot</h2> <p>Suomeksi luku koostuu yksittäisistä numeroista. Englanninkielisessä tekstissä luku on &quot;number&quot; ja numero on &quot;digit&quot;.</p> <p>On siis sinänsä ymmärrettävää, että nämä sanat menevät sekaisin.</p> <h2 id="yksikot" tabindex="-1">Yksiköt</h2> <p>Luulen, että seuraava on vain yleinen kirjoitusvirhe, eikä niinkään lainattu mistään. Yksikön kirjoittaminen ilman väliä lukuun. Esimerkiksi &quot;6km&quot;, kun pitäisi kirjoittaa &quot;6 km&quot;.</p> <p>Yhteenkirjoitettua kirjoitusasua ei ole siis käytössä edes englanninkielisessä tekstissä.</p> <p>Poikkeuksena tähän ovat (ainakin) prosenttiluvut ja valuutat. Englanninkielisessä tekstissä kirjoitettaisiin &quot;15£&quot; tai &quot;42$&quot;. Suomeksi kirjoitetaan &quot;16 €&quot; tai &quot;54 $&quot;.</p> <p>Lisätietoa: <a href="https://kielikello.fi/euron-tunnus-numeron-jaljessa/">Kielikellon artikkeli valuuttojen kirjoittamisesta</a>.</p> <h2 id="ainutlaatuisuuksia-suomen-kielessa" tabindex="-1">Ainutlaatuisuuksia suomen kielessä</h2> <p>Nämä eivät ole varsinaisesti enää tyypillistä kielioppia, vaan enemmänkin kyse on siitä, miten matematiikassakin käytetyt merkinnät eivät ole yhteisiä kaikilla kielillä.</p> <h3 id="laventaminen-ja-supistaminen" tabindex="-1">Laventaminen ja supistaminen</h3> <p>Murtolukujen laventamista ja supistamista ei ole samalla tavalla englannin kielessä, eikä sille ole siellä omaa merkintääkään.</p> <p>Laventaminen: <math> <mrow> <msubsup> <mrow></mrow> <mrow></mrow> <mrow><mn>3</mn><mi>)</mi></mrow> </msubsup> <mfrac><mn>2</mn><mn>3</mn></mfrac> </mrow><mtext>.</mtext></math></p> <p>Supistaminen: <math> <msup> <mfrac><mn>10</mn><mn>15</mn></mfrac> <mrow><mi>(</mi><mn>5</mn></mrow> </msup><mtext>.</mtext></math></p> <p>Loppujen lopuksi näiden merkintöjen käyttö on vain apuväline oman ajattelun näyttämisessä. Kun periaatteen ymmärtää, niin niitä ei erikseen tarvitse merkitäkään.</p> <h3 id="integraalimerkinta" tabindex="-1">Integraalimerkintä</h3> <p>Suomessa käytetään integraalilaskennassa myös eräänlaista välimerkintää, joka on verrattavissa laventamisen ja supistamisen merkitsemiseen. Sitäkään ei varsinaisesti tarvitse tehdä, mutta opetteluvaiheessa se on hyödyllinen.</p> <p>Ennen sijoittamista funktio integroidaan, jotta sijoittaminen ja laskeminen olisi helpompaa: <picture><source type="image/webp" srcset="/img/OFFOK5lrel-183.webp 183w"><img loading="lazy" decoding="async" src="/img/OFFOK5lrel-183.jpeg" alt="Kuvakaappus kaksirivisestä integraalilaskusta. Toisessa vaiheessa integraalimerkki on korvattu suurella kenoviivalla, jolla on ala- ja yläraja." width="183" height="102"></picture></p> <p>Sille on myös vastine englanninkielisessä tekstissä:</p> <math> <mrow> <mo>=</mo> </mrow> <mrow> <mi>π</mi> <mrow> <mo>(</mo> <mfrac> <msup> <mi>x</mi> <mn>5</mn> </msup> <mn>5</mn> </mfrac> <mo>−</mo> <mfrac> <mn>2</mn> <mn>3</mn> </mfrac> <msup> <mi>x</mi> <mn>3</mn> </msup> <mo>+</mo> <mi>x</mi> <mo>)</mo> </mrow> <msubsup> <mo>|</mo> <mrow> <mi>x</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>x</mi> <mo>=</mo> <mn>2</mn> </mrow> </msubsup> </mrow><mtext>.</mtext> </math> <h3 id="bonus-matematiikan-pistekirjoitus" tabindex="-1">Bonus: Matematiikan pistekirjoitus</h3> <p>Suomessa on oma standardi matematiikan pistekirjoitukselle. Niin on myös Ruotsissa ja Norjassa, mutta nämä eivät ole keskenään samanlaisia. Matematiikka ei siis ole pistekirjoituksena yhteistä kaikille kielille.</p> <p>Sen sijaan pistenuottikirjoitus on.</p> </content>
</entry>
<entry xml:lang="fi">
<title>Arvonlisäkorotuksen matematiikasta</title>
<link href="https://samimaatta.fi/kirjoitukset/arvonlisakorotuksen-matematiikasta/"/>
<updated>2024-08-22T00:00:00Z</updated>
<id>https://samimaatta.fi/kirjoitukset/arvonlisakorotuksen-matematiikasta/</id>
<content type="html"><p>Nyt, kun ALV-kannan nousu tulee 24 prosentista 25,5 prosenttiin 1.9.2024 lähtien, niin kukin on varmasti saanut erilaisia viestejä yrityksiltä, kun hinnat nousevat. Monet yritykset eittämättä siirtävät arvonlisän korottamisen suoraan hintoihinsa.</p> <p>Jos jostain syystä epäilet, että yritys haluaakin samalla nostaa hintoja ylipäänsä, niin voit tarkistaa sen suhteellisen helposti.</p> <h2 id="liian-monesti-nahty-vaarinkasitys" tabindex="-1">Liian monesti nähty väärinkäsitys</h2> <p>&quot;ALV-prosentti nousee 24 prosentista 25,5 prosenttiin. Eli hinnat kasvavat 25,5-24 % = 1,5 %.&quot;</p> <p>&quot;ALVin voisi siis laskea näin: <math display="inline"><mn>1,015</mn><mo>·</mo><mn>25</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext><mo>=</mo><mn>25,375</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext><mtext>.</mtext></math>&quot;</p> <p>ALV-kantojen erotus ei ole sama asia kuin hintojen muutos tällä prosenttimäärällä.</p> <h2 id="miten-uuden-al-vin-mukaisen-hinnan-voi-laskea" tabindex="-1">Miten uuden ALVin mukaisen hinnan voi laskea?</h2> <p>Ota olemassa oleva hintasi (ALVeineen) ja kerro se kertoimella 1,012.</p> <div class="notice"> <p>Esimerkiksi puhelinliittymäsi kuukausimaksu on 24 prosentin ALVilla 25 €/kk. Saat laskettua uuden hinnan näin: <math display="inline"><mn>1,012</mn><mo>·</mo><mn>25</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext><mo>=</mo><mn>25,30</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext><mtext>.</mtext></math></p> </div> <p>Jos hinnat nousevat enemmän kuin tämän verran, niin hinnoissa on mukana jotain muutakin nostoa kuin vain ALV-kannan muutos.</p> <h2 id="miksi-tama-toimii" tabindex="-1">Miksi tämä toimii?</h2> <p>Mistä kerroin 1,012 tulee? ALVillisen hinnan korotus tulee prosenttimuutoksena olemaan noin 1,2 %.</p> <p>Joku ajattelee: &quot;Hetkinen! Eikö se siis nousekaan 1,5 prosenttia? ALV nousee 24 prosentista 25,5 prosenttiin.&quot;</p> <p>Tämä on ymmärrettävää, koska <strong>prosenttimuutos</strong> ja <strong>prosenttiyksiköiden muutos</strong> menevät monesti sekaisin.</p> <p>Jos ALV-prosentti korottuisi 1,5 prosenttia, niin uusi ALV olisi 24,36 %, koska <math display="inline"><mn>24 </mn><mspace width="0.5ex"></mspace><mtext>%</mtext><mo>·</mo><mn>1,015</mn><mo>=</mo><mn>24,36</mn><mspace width="0.5ex"></mspace><mtext>%</mtext><mtext>.</mtext></math></p> <h3 id="esimerkki" tabindex="-1">Esimerkki</h3> <p>Käytetään samaa puhelinliittymää esimerkkinä ja lasketaan, mikä hinta on uuden ALVin (25,5 prosenttia) kanssa.</p> <p>Ensin pitää selvittää, mikä on ALViton hinta. Merkitään ALVItonta hintaa muuttujalla <math><mi>x</mi><mtext>.</mtext></math></p> <div class="notice"> <p><math display="inline"><mn>1,24</mn><mo>·</mo><mi>x</mi><mo>=</mo><mn>25</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext><mtext>.</mtext></math> Jaetaan molemmat puolet kertoimella 1,24.</p> <p><math display="inline"><mi>x</mi><mo>=</mo><mfrac><mrow><mn>25</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext></mrow><mn>1,24</mn></mfrac><mo>=</mo><mn>20,1612...</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext><mo>≈</mo><mn>20,16</mn><mspace width="0.5ex"></mspace><mtext>€/kk.</mtext></math></p> </div> <p>Hinta ilman ALVia on siis noin 20,16 €/kk. Jotta saadaan laskettua se aivan tarkasti, niin käytetään mieluummin murtolukua <math><mfrac><mrow><mn>25</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext></mrow><mn>1,24</mn></mfrac></math>. Näin pyöristys ei vaikuta laskemisessa.</p> <p>Hinta uudella ALVilla:</p> <div class="notice"> <p><math><mn>1,255</mn><mo>·</mo><mfrac><mrow><mn>25</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext></mrow><mn>1,24</mn></mfrac><mo>=</mo><mn>25,3024...</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext><mo>≈</mo><mn>25,30</mn><mspace width="0.5ex"></mspace><mtext>€/kk.</mtext></math></p> </div> <p>Mistä kerroin 1,012 siis tulee? Käyttämällä peruslaskusääntöjä kertolaskun ja jakolaskun suhteen yllä olevaa yhtälöä voidaan muokata muotoon</p> <div class="notice"> <p><math><mfrac><mn>1,255</mn><mn>1,24</mn></mfrac><mo>·</mo><mrow><mn>25</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext></mrow><mo>=</mo><mn>1,012096...</mn><mo>·</mo><mrow><mn>25</mn><mspace width="0.5ex"></mspace><mtext>€/kk</mtext><mo>≈</mo><mn><strong>1,012</strong></mn><mo>·</mo><mrow><mn>25</mn><mspace width="0.5ex"></mspace><mtext>€/kk.</mtext></mrow></mrow></math></p> </div> <p>Koska kerroin muodostuu vain ALV-prosenttien aiheuttamasta muutoksesta, niin sitä voi käyttää missä tahansa tapauksessa, jossa tämä ALV-muutos tapahtuu.</p> <h2 id="mita-vaarinymmarryksesta-voi-seurata" tabindex="-1">Mitä väärinymmärryksestä voi seurata?</h2> <p>ALV-muutoksesta on ollut yrittäjän näkökulmasta juttua Helsingin sanomissa ja Ylellä, joissa on ollut ihan kiinnostavaa matemaattis-journalistista otetta:</p> <blockquote class="flow"> <p>&quot;Alv-muutos herätti teknistä keskustelua; esimerkiksi taipuvatko myyntijärjestelmät desimaalilukuun 25,5? Pienyrittäjien parissa pelätään varjoon jääviä vaivihkaisia manöövereja.</p> <p>Schevelin-Repnau tulkitsee, että tavarantoimittajien uusissa hinnastoissa on lisäystä enemmän kuin puolitoista prosenttia.</p> <p>”Jengi päättää, että nyt on hyvä hetki nostaa samalla hintoja. Näinhän tämä menee”, hän sanoo ja toteaa, että silloin myös omia hintoja on nostettava.&quot;</p> <cite> <p><a href="hs.fi/talous/art-2000010616534">Verotuksen käänne voi aiheuttaa odottamattoman ketju­reaktion, sanovat huolestuneet pien­yrittäjät (hs.fi)</a></p> </cite> </blockquote> <p>On ihan totta, että nyt kannattaa olla tarkkoina hintojen nousemisen takia.</p> <blockquote class="flow"> <p>Korotus vaikuttaa hänestä lopulta paljon enemmän kuin vain 1,5 prosenttia.</p> <p>&quot;– Materiaalikulut, työpajan vuokra, telekulut, vakuutukset ja niin edelleen. Kun kaikki tämä nousee, minun pitäisi kyetä nostamaan lopputuotteen hintaa varmaan 15 prosenttia. Eihän se ole mahdollista.&quot;</p> <cite> <p><a href="https://yle.fi/a/74-20103123">Tällaisia ongelmia ALV-nousu yrityksissä aiheuttaa: pilkku voi sekoittaa ohjelmistoja, yrittäjä miettii irtisanomisia (yle.fi)</a></p> </cite> </blockquote> </content>
</entry>
<entry xml:lang="fi">
<title>Pintaa pitkin matkustaminen on hankalaa ja kallista</title>
<link href="https://samimaatta.fi/kirjoitukset/pintaa-pitkin-matkustaminen-on-hankalaa-ja-kallista/"/>
<updated>2024-07-13T00:00:00Z</updated>
<id>https://samimaatta.fi/kirjoitukset/pintaa-pitkin-matkustaminen-on-hankalaa-ja-kallista/</id>
<content type="html"><p>Intoutuneena edellisestä kirjoituksestani <a href="/kirjoitukset/pintaa-pitkin-suomesta-saksaan/">Pintaa pitkin Suomesta Saksaan</a> aloin pohtia, millaisia edellytyksiä vastaavan matkustamisen tekemiseen on erityisesti verrattuna lentämiseen ja sen helppouteen.</p> <p>Pintaa pitkin matkustamisessa täytyy huomioida paljon enemmän asioita kuin lentämisessä. Tähän voi toki sanoa, että &quot;valintoja, valintoja&quot;. Se on osittain totta.</p> <p>On olennaista kysyä, että missä olosuhteissa nämä valinnat tehdään. Lentämistä tuetaan valtioiden toimesta - ja toki julkista liikennettä -, mutta ei ole kestävää, että lentäminen on jatkuvasti houkuttelevampi vaihtoehto muille kulkutavoille. Sitä varten rakennettu infrastruktuuri on jo olemassa, ja siihen jatketaan suurien investointien tekemistä. Viimeisin investointi <a href="https://www.iltalehti.fi/kotimaa/a/61e7aaa4-98d0-416a-aab8-2e4173aadeec">Helsinki-Vantaan lentoasemalla on ollut sen pinta-alan kaksinkertaistaminen, joka on maksanut yli miljardi euroa (Iltalehti)</a>.</p> <h2 id="matkojen-jarjestaminen-pintaa-pitkin" tabindex="-1">Matkojen järjestäminen pintaa pitkin</h2> <h3 id="monimutkaisuus" tabindex="-1">Monimutkaisuus</h3> <p>Jo pelkästään matkaa suunnitellessa tuli mieleen, että &quot;onpa tämä hankalaa&quot;. Tällaisen matkan tekemiseen täytyy tutustua moneen erilaiseen liikennöitsijään:</p> <ul> <li>Tallink Silja Line Suomessa</li> <li>SJ Ruotsissa</li> <li>Deutsche Bahn Saksassa (ja tietää, että se liikennöi jo Kööpenhaminasta)</li> <li>BVG joukkoliikenne Berliinissä</li> <li>Lyypekin julkinen liikenne Saksassa</li> <li>Finnlines laivamatkoja Saksassa ja Suomessa.</li> </ul> <p>Kognitiviinen kuorma eli pelkän ajatustyön määrä on suurempi pintaa pitkin matkustamisessa. Se liittyy suunnitteluun (kuten edellä), mutta myös käytännön matkustamiseen. Matkatessa täytyy varautua</p> <ul> <li>myöhästymisiin</li> <li>kaupungissa ja asemalla liikkumiseen</li> <li>erilaisten ohjeiden, sovellusten ja nettisivujen sisäistämiseen.</li> </ul> <p>Esimerkki erikoisista huomioista, joita pitää osata tehdä: Deutsche Bahn julkaisee alennetut hintansa junamatkoista vain 60 vuorokauden päähän. Sitä myöhemmät junamatkat ovat vielä täysihintaisia. Tätä ihmetteli <a href="https://gruene.social/@jon/112755481681933802">Jon Worth Mastodonin puolella (englanniksi)</a>.</p> <h3 id="kustannukset" tabindex="-1">Kustannukset</h3> <p>Kokonaisuudessaan pintaa pitkin tekemämme matka kustansi noin 1360 euroa per henkilö. Tähän sisältyy</p> <ul> <li>Helsinki - Tukholma -laiva (132,40 euroa)</li> <li>junat (324,15 euroa)</li> <li>majoitukset (398,50 euroa)</li> <li>Travemünde - Helsinki -laiva (503,50 euroa) <ul> <li>hytin hinta (419,50 euroa)</li> <li>ruokailut (79 euroa)</li> <li>lisäksi langaton verkko (noin 15 euroa).</li> </ul> </li> </ul> <p>Oikeasti junakustannuksista voisi vähentää puolet, koska jouduimme tekemään matkan aikana hiukan muutoksia, mutta kustannus on silti suurin piirtein tätä suuruusluokkaa.</p> <p>Ainahan voi tehdä enemmän selvitystyötä, mitkä asiat oikeuttaisivat halvempien hintojen löytämiseen tai alennuslippujen ostoon mahdollisimman ajoissa.</p> <h3 id="matkojen-jarjestaminen-lentamalla" tabindex="-1">Matkojen järjestäminen lentämällä</h3> <p>On ikävää, että lentomatkustaminen on <strong>halvempaa</strong> ja <strong>kätevämpää</strong>. Pelkästään Helsinki - Berliini menopaluulento olisi noin 150 euroa plus piilokulut, joita välttämättä tulee, mutta hinnat ovat silti eri tasoilla.</p> <p></p><figure> <figcaption><a href="https://momondo.fi">Momondosta</a> haettu lento Helsingin ja Berliinin välillä.</figcaption> <picture><source type="image/webp" srcset="/img/aH9todNKvG-1176.webp 1176w"><img loading="lazy" decoding="async" src="/img/aH9todNKvG-1176.jpeg" alt="Kuvakaappaus Momondosta. 3.9. lähtö klo 18 ja saapuminen Berliiniin klo 19. Paluulento 10.9. Berliinistä klo 8:20 ja yhdellä välilaskulla Helsinkiin klo 14:45. Hinta 146 euroa." width="1176" height="233"></picture> </figure><p></p> <p>On varmasti yksinkertaisempaa järjestää ja tukea infrastruktuuria, jolla parhaimmillaan kaupungista toiseen pääsee suoralla yhteydellä eli yhdellä lennolla. Olennaista on, että investointeja julkiseen liikenteeseen pitäisi tehdä nyt, jotta se on halvempaa myöhemmin.</p> <h3 id="vertailukelpoista" tabindex="-1">Vertailukelpoista?</h3> <p>Pintaa pitkin ja lentäen matkustamista ei tietenkään voi suoraan verrata toisiinsa. Ajattelutavan pitää olla erilainen, kun kulkee pitkää matkaa junassa kuin lentäen.</p> <p>Voiko siis näitä kahta tapaa verrata täysin keskenään? Minusta ei, mutta se ei silti tarkoita etteikö pintaa pitkin matkustamisen voisi toivoa olevan yksinkertaisempaa.</p> <h2 id="ratkaisuja-pintaa-pitkin-matkustamisen-helpottamiseksi" tabindex="-1">Ratkaisuja pintaa pitkin matkustamisen helpottamiseksi</h2> <p>Tässä tulee aika estoitta erilaisia ideoita siitä, miten kestäviä kulkutapoja voisi tukea enemmän. Mielestäni EU on tässä suhteessa luonnollinen taho, joka edistäisi Euroopassa maiden välisten yhteyksien parantamista erilaisilla tuilla ja verkostoilla.</p> <p>En voi sanoa tutustuneeni juurikaan siihen, mitä on jo tekeillä (tai mitä ei ole tekeillä), joten ehdotuksiin ja kirjoitukseen kannattaa suhtautua siltäkin osin kriittisesti.</p> <p>Sen sijaan tutustu <a href="https://gruene.social/@jon">Jon Worthiin (englanniksi, Mastodon-profiili)</a>, joka on tutustunut syvällisesti rajoja ylittäviin junamatkoihin Euroopassa projektissaan <a href="https://crossborderrail.trainsforeurope.eu/about/">#CrossBorderRail (englanniksi)</a>.</p> <p>Jos kuitenkin kiinnostaa, millaisia ideoita itse voisin ajaa eteenpäin, niin lue vain.</p> <h3 id="eu-tukea-pintaa-pitkin-matkustamisen-jarjestelmiin" tabindex="-1">EU-tukea pintaa pitkin matkustamisen järjestelmiin</h3> <ul> <li>Kannustimia yhteisen järjestelmän luomiseen ja vähintään englannin kielen tukemiseen (paremman puutteessa).</li> <li>Kannustimia usean eri maksutavan mahdollistamiseksi vähintään tietyn matkaajamäärän saavuttavista kaupungeissa tai pääkaupungeissa.</li> </ul> <h3 id="eu-tukea-hintojen-alentamiseksi" tabindex="-1">EU-tukea hintojen alentamiseksi</h3> <p>Tavoite ei olisi tehdä voittoa, vaan luoda Euroopan yhteinen juna- ja laivamatkustusverkosto.</p> <h3 id="eu-tukea-yhteyksien-parantamiseen" tabindex="-1">EU-tukea yhteyksien parantamiseen</h3> <p>Lisää yhteyksiä ja mahdollisuuksia tehdä matkoja. Matkustamisen hintojen alentaminen nostaa kysyntää matkoille, joten yhteyksien määrää pitää kasvattaa.</p> <h3 id="eu-n-suositus-julkisen-liikenteen-kustannuksista" tabindex="-1">EU:n suositus julkisen liikenteen kustannuksista</h3> <p>Aivan, kuten NATO suosittaa tietyn prosenttiosuuden käyttämistä puolustusmenoihin, niin EU voisi suosittaa samaa, mutta julkisen liikenteen osalta.</p> <h3 id="katevyytta-matkustamiseen" tabindex="-1">Kätevyyttä matkustamiseen</h3> <ul> <li>Rajojen ylittämisen pitäisi olla helppoa (jota se tällä matkalla olikin). Passia ei pitäisi edellyttää vähintään niissä yhteyksissä, joissa sitä ei edellytetä lentäessäkään.</li> <li>Tunnistetaan pisteet, joissa olisi tarpeen olla standardin mukainen ohjeistus matkustajien ohjaamiseen digitaalisesti ja fyysisesti.</li> </ul> <h3 id="esteettomyytta-ja-saavutettavuutta-matkustamiseen" tabindex="-1">Esteettömyyttä ja saavutettavuutta matkustamiseen</h3> <ul> <li>Matkakeskusten ja kulkuvälineiden tulee olla esteettömiä, jotta matkustaminen on helppoa myös vammaisille.</li> <li>Digitaalisten järjestelmien ja esimerkiksi lippuautomaattien pitää olla saavutettavia ja esteettömiä.</li> </ul> <h3 id="eu-n-laajuinen-julkisen-liikenteen-lippu" tabindex="-1">EU:n laajuinen julkisen liikenteen lippu</h3> <p>Interrail-lippu, joka toimii ja toimisi myös kaupungeissa. Käsittääkseni Interrail-lippu on menettänyt tehoaan eli sillä saa nykyään vain alennuksia eri junayhtiöissä, eikä suoraan oikeutta varata lippua haluamaansa junaan. <a href="https://saaste.net/blogi/2024/interrail-vastoinkaymiset/">Saaste kirjoittaa Interrail-lipun käytöstä blogissaan korostaen sen ongelmia</a>.</p> <p>Saksassa on tällä hetkellä käytössä 49 euroa maksava kuukausilippu, jolla voi matkustaa minkä vain saksalaisen kaupungin joukkoliikenteessä. (Sen hinta on tosin nousemassa ensi vuonna.) Interrail-lipun pitäisi olla samanlainen ja oikeasti mahdollistaa joustavan junien käytön Euroopassa.</p> <h4 id="jokeri-eu-n-laajuinen-museokortti" tabindex="-1">Jokeri: EU:n laajuinen museokortti</h4> <p>Samaan syssyyn heittäisin myös EU:n laajuisen museokortin. Ostat museokortin Suomessa. Lisähinnasta voisit ostaa siihen &quot;laajennuksen&quot;, jolla avulla pääset kaikkiin EU:n alueen museoihin.</p> <h3 id="tyoelamassakin-pitaisi-kannustaa-kestavaan-lomamatkailuun" tabindex="-1">Työelämässäkin pitäisi kannustaa kestävään lomamatkailuun</h3> <p>Pintaa pitkin matkustaminen kuluttaa väistämättä enemmän aikaa ja lomalaiselle nämä päivät voivat olla arvokkaita. Kestävillä kulkutavoilla matkustavalle työntekijälle voitaisiin myöntää lisää lomapäiviä kulkutapansa mukaan.</p> <h3 id="kannustetaan-kestavaan-tyomatkailuun" tabindex="-1">Kannustetaan kestävään työmatkailuun</h3> <ul> <li>Parannetaan verkkoyhteyksiä.</li> <li>Lisätään rauhallisia alueita juniin, jotta keskittymistä vaativa työ olisi mahdollista.</li> <li>Kannustetaan työnantajan taholta rahallisesti tai muulla keinolla kestävien kulkutapojen käyttämistä, vaikka lentäminen olisi halvempaa.</li> </ul> <h3 id="lentamisen-tuet-alas" tabindex="-1">Lentämisen tuet alas</h3> <p>Lentämistä ei pitäisi tukea rahallisesti niin paljon kuin sitä tuetaan nyt.</p> <h2 id="hajanaisia-ideoita" tabindex="-1">Hajanaisia ideoita</h2> <p>Kuten huomata saattaa, niin ideoita oli laidasta laitaan. Kaikkea ei tarvitsisi varmastikaan tehdä ylhäältä alas -menetelmällä, mutta kannustimia yhtenäisempien ratkaisujen etsimiseen pitäisi olla.</p> <p>Mitä ideoita sinulla olisi?</p> </content>
</entry>
<entry xml:lang="fi">
<title>Pintaa pitkin Suomesta Saksaan</title>
<link href="https://samimaatta.fi/kirjoitukset/pintaa-pitkin-suomesta-saksaan/"/>
<updated>2024-07-13T00:00:00Z</updated>
<id>https://samimaatta.fi/kirjoitukset/pintaa-pitkin-suomesta-saksaan/</id>
<content type="html"><picture><source type="image/webp" srcset="/img/Owm05dDsva-1280.webp 1280w"><img loading="lazy" decoding="async" src="/img/Owm05dDsva-1280.jpeg" alt="Valokuva värikkäistä seinistä Kööpenhaminassa." width="1280" height="960"></picture> <p>Teimme heinäkuun alussa avopuolisoni kanssa laivoilla ja junilla matkan Suomen Helsingistä Saksan Berliiniin. Ajatus oli, että kokeillaan, miten ilman lentämistä tehtävä matkailu tuntuu.</p> <p><strong>Tärkeä huomio heti alkuun!</strong> Travemünde-Helsinki -laivaan lähtöselvityksen teossa <strong>tarvitaan passi</strong>. Ajokortti <s>tai henkilöllisyyskortti</s> ei riittänyt.</p> <p><strong>Päivitys (14.7.2024)</strong>: Olen saanut kuulla, että henkilökortti kävisi lähtöselvityksessä muilla, joten ajattelen sen siis sopivan! Passi kannattaa kuitenkin olla varalta mukana.</p> <h2 id="reitti" tabindex="-1">Reitti</h2> <p>Reitti kulki näiden kaupunkien kautta:</p> <ol> <li>Helsinki</li> <li>Tukholma</li> <li>Kööpenhamina</li> <li>Hampuri (vaihtoyhteys)</li> <li>Berliini</li> <li>Hampuri (vaihtoyhteys)</li> <li>Lyypekki (vaihtoyhteys)</li> <li>Travemünde</li> <li>Helsinki.</li> </ol> <p>Kokonaisuudessaan matka tehtiin välillä 1.-10.7.</p> <h2 id="helsinki-tukholma-laiva" tabindex="-1">Helsinki - Tukholma (laiva)</h2> <p class="notice light-accent1">Lähtö Helsingistä: maanantaina 1.7. kello 17:00.</p> <p class="notice light-accent2">Liput ostettu: <a href="https://fi.tallink.com/helsinki-tukholma">Tallink Silja Line</a>.</p> <p>Lähdimme 1.7. matkaan Helsingin Olympiaterminaalista <a href="https://fi.tallink.com/helsinki-tukholma">Tallink Silja Linellä</a>. Alunperin otettu C-hytti muutettiin A-hytiksi, kun tajusimme, että emme lopulta haluakaan matkustaa autokannen alla - ja ikkunakin olisi kiva. Muutos onnistui vielä saman päivän aikana soittamalla asiakaspalveluun.</p> <p>Laivalla oli totisesti vilinää. Ei kannata odottaa rauhallista buffetti-illallista tai -aamiaista.</p> <p class="notice light-accent1">Saapuminen Tukholmaan: tiistaina 2.7. kello 10:00.</p> <h2 id="tukholma-vajaa-kolme-tuntia" tabindex="-1">Tukholma (vajaa kolme tuntia)</h2> <p>Junamatka Kööpenhaminaan oli kello 13:21, joten meillä oli vajaa kolme tuntia aikaa tuhlattavana Tukholmassa. Käytiin hiukan kiertelemässä katuja ja kauppoja. Pysähdyttiin syömään <a href="https://www.gastcafe.se/">Gast Caféseen (englanniksi)</a> ja se oli totisesti hyvää! Kannattaa siis käydä.</p> <h2 id="tukholma-koopenhamina-juna" tabindex="-1">Tukholma - Kööpenhamina (juna)</h2> <p class="notice light-accent1">Lähtö Tukholmasta: tiistaina 2.7. kello 13:21.</p> <p class="notice light-accent2">Liput ostettu: <a href="https://www.sj.se/">SJ (ruotsiksi)</a>.</p> <p>Ostimme junaliput Kööpenhaminaan Ruotsin VR:ää vastaavasta eli <a href="https://www.sj.se/">SJ:stä (ruotsiksi)</a>. Tämä oli mukavimpia junamatoja mitä olen ikinä tehnyt. Junavaunu oli moderni ja matka sujui ongelmitta.</p> <p>Ostimme alunperin junalipun vain Kööpenhaminan lentokentälle asti, mutta samalla lipulla pääsi silti Kööpenhaminan keskustaan. Ei siis tarvinnut ostaa erillistä lippua tai nousta edes junasta!</p> <p><strong>Päivitys (13.7.2024)</strong>: Unohdinkin tästä, että meillä oli itse asiassa vaihto Lundin rautatieasemalla. Eli junamatka ei ollut suora. Saavuimme Lundiin kello 17:40 ja jatkoimme matkaa kello 17:53.</p> <p class="notice light-accent1">Saapuminen Kööpenhaminaan: tiistaina 2.7. kello 20:33.</p> <h2 id="koopenhamina-puolitoista-vuorokautta" tabindex="-1">Kööpenhamina (puolitoista vuorokautta)</h2> <p>Olimme Kööpenhaminassa tiistaista torstaihin 2.-4.7. eli pari yötä. Sinä aikana kävimme <a href="https://www.glyptoteket.com/">taidemuseo Glypotekissä</a>. Miltei itse taidetta kiinnostavampaa oli Glyptotekin arkkitehtuuri. Kannattaakin siis tsekata sen arkkitehtuurista kertova näyttely! Kai Nielsenin veistosnäyttely oli hieno, joten sillekin suositus.</p> <p>Kööpenhaminasta jäi mieleen, että kylläpä voikin olla paljon pyöriä ja pyöräilijöitä. Rautatieaseman edustalla oli polkupyöriä todella suuri määrä ja iltapäiväruuhkan aikaan ohitse sujahti useampi pyöräilijä kuin auto.</p> <h2 id="koopenhamina-hampuri-juna-hampurissa-vaihto" tabindex="-1">Kööpenhamina - Hampuri (juna, Hampurissa vaihto)</h2> <p class="notice light-accent1">Lähtö Hampuriin: torstaina 4.7. kello 9:14.</p> <p class="notice light-accent2">Liput ostettu: <a href="https://int.bahn.de/">Deutsche Bahn (englanniksi)</a>.</p> <p>Juna Kööpenhaminasta Hampuriin oli jo saksalaisen junayhtiö Deutsche Bahnan liikennöimä. Junaliput ostettiin siis <a href="https://www.bahn.de/">Deutsche Bahnan nettisivuilta (saksaksi, bahn.de)</a>. Tässä vielä <a href="https://int.bahn.de/">Englanninkieliset Deutsche Bagnan sivut (int.bahn.de)</a>.</p> <p>Deutsche Bahn on surullisen kuuluissa myöhästyvistä junistaan, joten siihen kannattaa varautua henkisesti. Kun näin käy, niin sitten saa oikeuden käyttää lippuaan vastaavassa junassa (esimerkiksi toisessa ICE-junassa). Muutoin täytyy ostaa uusi lippu. Muistaakseni matkasta voi hakea korvauksia.</p> <p>Meitä auttoi tsekata etukäteen Hampurin rautatieaseman kartta:</p> <ul> <li><a href="https://www.bahnhof.de/en/hamburg-hbf/map">Interaktiivinen Hampurin rautatieaseman ympäristön kartta (englanniksi)</a></li> <li><a href="https://www.bahnhof.de/downloads/station-plans/2514.pdf">Hampurin rautatieaseman laiturit (saksaksi, PDF)</a>.</li> </ul> <p class="notice light-accent1">Saapuminen Hampuriin: torstaina 4.7. kello 14:06. (Tosiasiassa tämä juna taisi olla myöhässä. En muista, kuinka paljon.)</p> <h2 id="hampuri-berliini-juna" tabindex="-1">Hampuri - Berliini (juna)</h2> <p class="notice light-accent1">Lähtö Berliiniin (lipussa oleva aika): torstaina 4.7. kello 14:35. (Muistaakseni juna lähti myöhässä noin kello 15.)</p> <p class="notice light-accent2">Liput ostettu: <a href="https://int.bahn.de/">Deutsche Bahn (englanniksi)</a>.</p> <p>Tässä vaiheessa ikävöimme Tukholma-Kööpenhamina -junan moderniutta. Matka sujui ihan kivasti, mutta vaunu muistutti enemmän VR:n vanhempaa vaunua kuin nykyaikaista.</p> <p class="notice light-accent1">Saapuminen Berliiniin (lipussa oleva aika): torstaina 4.7. kello 16:20. (Lähdön myöhästymisen vuoksi tämä juna oli perillä 16:50 aikoihin.)</p> <h2 id="berliini-noin-3-vuorokautta" tabindex="-1">Berliini (noin 3 vuorokautta)</h2> <p class="notice light-accent2">Liput ostettu: <a href="https://www.bvg.de/en">BVG (englanniksi)</a>.</p> <p>Vietimme Berliinissä päivät 4.-8.7.</p> <p>Koska olimme useamman päivän Berliinissä, niin tutustuimme <a href="https://www.bvg.de/en">Berliinin julkisen liikenteen nettisivuihin (englanniksi, BVG)</a> ja latasimme julkisen liikenteen sovelluksen <a href="https://play.google.com/store/apps/details?id=de.bvg.ticket&amp;hl=en_US&amp;pli=1">BVG Tickets: Bus, Train &amp; Tram (englanniksi, play.google.com)</a>. Kannattaa tutustua eri lippuvaihtoihin ja selvittää, mikä niistä olisi omaan matkaan sopivin. Päädyimme itse käyttämään vuorokausilippuja tarpeen mukaan.</p> <p>Vuorokausilippu (9,90 euroa) oli kannattava, jos teki enemmän kuin kaksi matkaa vuorokauden aikana, sillä yksi lippu maksoi 3,50 euroa. Berliinissä pärjäsi hyvin AB-vyöhykkeen lipulla.</p> <p>Kannattaa myös vakavissaan tutustua WelcomeCardiin! Se toimii julkisen liikenteen lippuna (minimissään kaksi vuorokautta) ja sillä saa alennusta joukosta eri museoita ja tapahtumia. Alla linkki lipputyyppeihin, joissa on myös WelcomeCard.</p> <p>Pari linkkiä julkisesta liikenteestä:</p> <ul> <li><a href="https://www.bvg.de/en/connections/network-maps-and-routes">Berliinin julkisen liikenteen kartta (englanniksi, BVG)</a></li> <li><a href="https://www.bvg.de/en/subscriptions-and-tickets/all-tickets">lipputyypit (englanniksi, BVG)</a> <ul> <li>Alempana sivua kohta &quot;For tourists&quot;, jossa on WelcomeCard-vaihtoehdot.</li> </ul> </li> </ul> <p>Kohokohtia Berliinistä:</p> <ul> <li><a href="https://en.darkmatter.berlin/">DARK MATTER valo- ja ääni-installaationäyttely</a>, maksullinen, liput voi ostaa etukäteen.</li> <li><a href="https://www.jmberlin.de/en">Juutalaismuseo</a>, päänäyttely maksuton.</li> <li><a href="https://www.berlin.de/mauer/en/sites/commemorative-sites/berlin-wall-memorial/">Berlin Wall Memorial</a>, maksuton (ulkoilma).</li> </ul> <h2 id="berliini-hampuri-juna-hampurissa-vaihto" tabindex="-1">Berliini - Hampuri (juna, Hampurissa vaihto)</h2> <p class="notice light-accent1">Lähtö Hampuriin: maanantaina 8.7. kello 13:06.</p> <p class="notice light-accent2">Liput ostettu: <a href="https://int.bahn.de/">Deutsche Bahn (englanniksi)</a>.</p> <p>Liput ostettu taas Deutsche Bahnalta. Berliinin rautatieasema on aika vaikuttava, koska se on monessa eri tasossa. Sieltä lähtee kaukojunia, lähijunia ja Berliinin julkisen liikenteen yhteyksiä. Kaikki tämä tarvitsee tilaa, mikä näkyy aseman suunnittelussa.</p> <p>Berliinistä lähtevässä junassa oli melkein yksinomaan 6 henkilön hyttejä ja vapaita paikkoja oli aika hankala löytää, koska emme olleet varanneet paikkaa. Ensi reissulle joka junaan voisi ottaa paikkavarauksen (joka maksaa erikseen), niin junassa olemisessa ei kulu aikaa haahuiluun tai pahimmillaan koko matka käytävällä seisomiseen.</p> <p class="notice light-accent1">Saapuminen Hampuriin: maanantaina 8.7. kello 15:12.</p> <h2 id="hampuri-lyypekki-juna" tabindex="-1">Hampuri - Lyypekki (juna)</h2> <p class="notice light-accent1">Lähtö Hampurista: maanantaina 8.7. kello 16:06.</p> <p class="notice light-accent2">Liput ostettu: <a href="https://int.bahn.de/">Deutsche Bahn (englanniksi)</a>.</p> <p>Tämä oli suhteellisen lyhyen matkan juna, ja se tuli aika täyteen. Osa matkustajista joutui seisomaan tai istumaan käytävillä.</p> <p>Alunperin olimme ostaneet junalipun Travemünden asemalle (saksaksi Travemünde bahnhof, englanniksi Travemünde station) asti, mutta luimme netistä, että sieltä ei voi kulkea kätevästi Travemünden matkustajaterminaaliin (englanniksi Travemünde terminal). Päätimme siis jäädä jo Lyypekissä pois, jotta voimme kiertää kaupunkia ja käydä syömässä.</p> <p>Laiva oli muutenkin lähdössä vasta tiistaiyön puolella kello 02:00 ja terminaaliin piti saapua kello 23 mennessä, jolloin sieltä lähti linja-autokuljetus laivaan.</p> <p class="notice light-accent1">Saapuminen Lyypekkiin: maanantaina kello 17:00.</p> <h2 id="lyypekki-travemuenden-matkustajaterminaali-linja-auto" tabindex="-1">Lyypekki - Travemünden matkustajaterminaali (linja-auto)</h2> <p class="notice light-accent1">Lähtö Lyypekistä: maanantaina 8.7. kello 19:50.</p> <p class="notice light-accent2">Matkahaku: <a href="https://www.sv-luebeck.de/en/">Lyypekin julkinen liikenne (englanniksi ja saksaksi)</a>. Lipun osto linja-autosta.</p> <p>Travemünde-Helsinki -laivayhteyttä hoitaa <a href="https://www.finnlines.com/fi/">Finnlines</a>, jonka sivuilla on tarkempaa tietoa, miten Lyypekistä pääsee Travemünden matkustajaterminaaliin ja miten terminaalista pääsee laivaan.</p> <p>Linkkejä matkaa varten:</p> <ul> <li><a href="https://www.finnlines.com/fi/reitit/helsinki-travemunde/">Finnlines (Travemünde-Helsinki -yhteys)</a>: aikataulut ja muuta tietoa matkasta. <ul> <li>Maksat erikseen hytistä, ruokailuista ja langattomasta verkosta.</li> </ul> </li> <li><a href="https://www.finnlines.com/fi/matkustajat/hyva-tietaa/satamat-ja-ajo-ohjeet/travemunde/">Travemünden sataman osoite, lähtöselvitysajat ja tietoa julkisen liikenteen yhteyksistä (Finnlines)</a>. <ul> <li>Sivulla on alempana kohta &quot;Julkisilla kulkuvälineillä&quot;, joissa on ajantasainen ohje, miten terminaalille pääsee.</li> </ul> </li> </ul> <p>Täytyy sanoa, että tämä oli reissun stressaavin osa. Kun reissua ei ollut ikinä tehnyt aiemmin, niin Travemünden satama, terminaali ja asema menivät iloisesti sekaisin omassa päässä, eikä ollut selvää, minne oikeastaan pitää mennä.</p> <p>Koko hommassa ehkä korostuu, että laivayhteys ei lopulta ole ensisijaisesti matkustajille, vaan rahtiliikenteelle. Lisäksi moni laivaa käyttävä tulee omalla autollaan, joten autottomalle matkustajalle tilanne voi olla vielä hämmentävämpi.</p> <p><strong>Huomaa!</strong> Google Maps ei osaa näyttää oikeaa yhteyttä Travemünden matkustajaterminaaliin. Kannattaa käyttää <a href="https://www.sv-luebeck.de/en/">Lyypekin alueen julkisen liikenteen nettisivuja (osittain englanniksi, osittain saksaksi)</a> sopivan linja-auton löytämiseen.</p> <p><strong>Huomaa lisäksi!</strong> Nettisivut antavat vaihtoehdon ostaa lipun, mutta lippua ei voi käyttää ellei sitä tulosta. Lipun voi onneksi ostaa linja-autosta.</p> <p>Ikävää on, että nettisivuja ei ole kokonaan käännetty englanniksi:</p> <p></p><figure> <figcaption>Kuvakaappaus sivustolta <a href="https://www.sv-luebeck.de/en/">sv-luebeck.de/en/</a>.</figcaption> <picture><source type="image/webp" srcset="/img/LboxXNlZUv-907.webp 907w"><img loading="lazy" decoding="async" src="/img/LboxXNlZUv-907.jpeg" alt="Aikatauluhaku on otsikon 'Personal timetable' alla. Tarkistin lukemisjärjestyksen. Sen alla on ensin valikko (radio-painikkeet), haku lähtöpaikalle, sitten valikko (radio-painikkeet) saapumispaikalle. Tämän jälkeen on lähtöpäivämäärä ja saapumisaika. Tämä jälkeen pudotusvalikosta voi valita perilläoloajan. Viimeisenä yhteyden etsimispainike punaisella taustalla." width="907" height="409"></picture> </figure><p></p> <p>Käännöksiä kuvakaappauksen termeille:</p> <ul> <li>&quot;Haltestelle&quot; tarkoittaa pysäkkiä, &quot;Adresse&quot; osoitetta ja &quot;Wichtiger Punkt&quot; tarkoittaa tärkeää paikkaa tai nähtävyyttä.</li> <li>&quot;Von&quot; tarkoittaa lähtöpaikkaa ja &quot;Bis&quot; tarkoittaa saapumispaikkaa.</li> <li>Päivämäärä ja kellonaika ovat aika itsestäänselvät. <ul> <li>Vaihtoehto &quot;Abfahrt&quot; tarkoittaa, että haet lähtöaikaa.</li> </ul> </li> <li>&quot;Verbindung suchen&quot; tarkoittaa &quot;etsi yhteys&quot;.</li> </ul> <p>Toimivan yhteyden löydät, kun haet lähtöä pysäkiltä &quot;ZOB/Haupbahnhof&quot; (tarkoittaa päärautatieasemaa) ja päämääränä &quot;Skandinavienkai Terminal&quot; (tarkoittaa Skandinavian 'laituria' tai satamaa ja sen terminaalia.)</p> <p><strong>Huomaa!</strong> Kaiken tämän lisäksi sivusto vaikuttaa toimivan todella huonosti, koska se jäätyy lyhyeksi aikaa, kun tekstiä alkaa kirjoittaa. Yhdellä kerralla tietokoneella koko välilehtikin pysähtyi.</p> <p>Käytä nettisivuja oikean laiturin tai pysäkin löytämiseen Lyypekissä ja hyppää kyytiin.</p> <p class="notice light-accent1">Saapuminen Travemünden matkustajaterminaaliin: maanantaina 8.7. kello 20:20.</p> <h2 id="travemuenden-matkustajaterminaali-finnlinesin-laiva-linja-auto" tabindex="-1">Travemünden matkustajaterminaali - Finnlinesin laiva (linja-auto)</h2> <p class="notice light-accent2">Liput ostettu (kuuluu laivamatkan hintaan): <a href="https://www.finnlines.com/fi/">Finnlines</a>.</p> <p>Matkustajaterminaali on linja-autopysäkin lähellä ja näytti ensivilkaisulla hotellilta. Siinä on iso kyltti &quot;Hafenhaus&quot; ja alapuolella lukee &quot;Check-in&quot;.</p> <p>Lähtöselvityksen pystyi tekemään kello 20:30 alkaen. Alussa huomautin, että lähtöselvityksessä tarvitaan passi, mikä tuntuu ihmeelliseltä, kun ollaan EU:n alueella. Lähtöselvityksestä saat</p> <ul> <li>hyttikortin</li> <li>ruokailulipun (jos maksoit ruokailuista)</li> <li>lipun langattomaan verkkoon, joka vaihdetaan laivalla PIN-koodiin (jos maksoit langattomasta verkosta).</li> </ul> <p>Lähtöselvityksen jälkeen terminaalissa oleillaan odottamassa linja-autokuljetusta laivalle. Terminaalin alakerrassa on kauppa, jossa emme kyllä käyneet, ja (oletettavasti) päivällä toimiva ravintola.</p> <p>Omia eväitä kannattaa siis olla mukana ellei ole jo syönyt aiemmin. Laivalla on myöhäisillan ruokatarjoilu, joka maksaa erikseen, vaikka olisi ostanut ruokailut (brunssi, päivällinen ja aamiainen) laivalla.</p> <p class="notice light-accent1">Lähtö matkustajaterminaalista: maanantaina 8.7. kello 23:00.</p> <h2 id="travemuende-helsinki-laiva" tabindex="-1">Travemünde - Helsinki (laiva)</h2> <p class="notice light-accent1">Lähtö Travemündestä: tiistaina 9.7. kello 02:00. (En ole varma lähdettiinkö ihan ajoissa. Olin jo unessa.)</p> <p class="notice light-accent2">Liput ostettu: <a href="https://www.finnlines.com/fi/">Finnlines</a>.</p> <p>Linja-autokuljetus ei kestä pitkään ja päätyy laivan autokannelle. Kyydistä nousun jälkeen ei ole mitään ohjeita, minne pitäisi mennä. Kuski osoittaakin meidät laivan portaikkoon, jossa portaita voi varmaan käyttää, mutta tilassa on myös hissi, jolla menemme oikealle kannelle.</p> <p>Itse laiva on kohtuullisen viihtyisä. Tekemistä ei ole paljoa, mutta sitä ei tässä vaiheessa oikein odotakaan. Laivalla voi <strong>lisämaksusta</strong> (taas!)</p> <ul> <li>käyttää kuntosalia</li> <li>käyttää salia</li> <li>käydä hieronnassa.</li> </ul> <p>Laiva on verrattain vähän aikaa maissa, joten hyttien siivousta tehdään yleensä vielä matkustajien saapuessa. Laivalla tulee erillinen kuulutus, kun tietyn kannen hytteihin pääsee.</p> <p>Kaiken kaikkiaan matka sujui tosi rauhallisesti. En edes herännyt yöllä, kun lähdimme satamasta, eikä laiva keikkunut (huomatakseni) ollenkaan. Suurimmat melut tulivat hytin ilmastoinnista - ja toisista hyteistä. Seinät olivat selkeästi aika ohuet, koska saatoin kuulla jonkun kuorsauksen tai raskaan hengityksen (tai ainakin kuvittelin kuulevani).</p> <p class="notice light-accent1">Saapuminen Helsinkiin: keskiviikkona 10.7. kello 10:00.</p> <h2 id="vuosaaren-satama-helsingin-keskusta-linja-auto-ja-metro" tabindex="-1">Vuosaaren satama - Helsingin keskusta (linja-auto ja metro)</h2> <p class="notice light-accent2">Liput ostettu: <a href="https://www.finnlines.com/fi/">Finnlines</a> (kuuluu laivamatkan hintaan) ja <a href="https://www.hsl.fi/">HSL</a>.</p> <p>Laivan saavuttua Vuosaareen laivasta on vielä autottomille matkustajille linja-autokuljetus johonkin satamarakennukseen, jossa kuljetaan tullin läpi.</p> <p>Tämä jälkeen käytetään normaalisti Helsingin joukkoliikennettä (HSL) ja mennään linja-autolla Vuosaaren metroasemalle.</p> <p>En voinut olla kiinnittämättä huomiota ulkomaalaisiin kanssamatkustajiin, joille ei ollut tarjolla juuri mitään tietoa siitä, mihin pitäisi mennä tai mitä pitäisi tehdä.</p> <h3 id="ulkomaalainen-matkustaja-kohtaa-ongelman-helsingissa-heti-kattelyssa" tabindex="-1">Ulkomaalainen matkustaja kohtaa ongelman Helsingissä heti kättelyssä</h3> <p>Meille tämä ei ollut minkäänlainen ongelma, koska olemme helsinkiläisiä ja tiedämme, miten systeemi toimii.</p> <p>Ulkomaalainen matkustaja ei tiedä, että julkisen liikenteen lippuja ei voi ostaa linja-autosta, vaan tässä kannattaa käyttää HSL-sovellusta. Tähän ei ole mitään ohjeistusta linja-autopysäkillä</p> <p>Vaihtoehto tälle on satamarakennuksen lippuautomaatti. Sen ongelma on, että sen ohi ei edes kuljeta, kun linja-autopysäkille mennään, vaan sitä täytyy etsiä rakennuksen toisesta osasta. Mekään emme huomanneet (vaikka emme etsineetkään) tätä mahdollisuutta.</p> <p>Käytännössä linja-auton kuski osoitti matkustajat lippuautomaatille ja ajoi tiehensä, jos he eivät ehtineet takaisin. Yksi perhe ehti kyytiin ennen kuin linja-auto lähti. Onneksi linja-autoja vaikutti kulkevan suhteellisen usein, mutta tämä on todella ikävä ensikosketus Helsingin julkiseen liikenteeseen.</p> <h2 id="kustannukset" tabindex="-1">Kustannukset</h2> <p>Kokonaisuudessaan matka kustansi noin 1360 euroa per henkilö. Tähän sisältyy</p> <ul> <li>Helsinki - Tukholma -laiva (132,40 euroa)</li> <li>junat (324,15 euroa)</li> <li>majoitukset (398,50 euroa)</li> <li>Travemünde - Helsinki -laiva (503,50 euroa) <ul> <li>hytin hinta (419,50 euroa)</li> <li>ruokailut (79 euroa)</li> <li>lisäksi langaton verkko (noin 15 euroa).</li> </ul> </li> </ul> <p>Oikeasti junakustannuksista voisi vähentää puolet, koska jouduimme tekemään matkan aikana hiukan muutoksia, mutta kustannus on silti suurin piirtein tätä suuruusluokkaa.</p> <p>Tämä johtaakin viimeiseen reflektioon koko matkasta ja sen käytännön asioista. Teen pohdintaa kirjotuksessa <a href="/kirjoitukset/pintaa-pitkin-matkustaminen-on-hankalaa-ja-kallista/">Pintaa pitkin matkustaminen on hankalaa ja kallista</a>.</p> <h2 id="kantamukset" tabindex="-1">Kantamukset</h2> <p>Pitkälle matkalle lähtiessä otan yleensä kaksi kantosysteemiä mukaan:</p> <ol> <li>Isompi laukku tai reppu, jossa kulkee kaikki matkalla tarvittava. Kohteessa tämä reppu jää päiväretkien ajaksi majoitukseen.</li> <li>Pienempi laukku tai reppu, jota käytän kaupungissa. Tässä on kätevä kantaa päiväretken oleelliset tavarat, kuten vesipullo, aurinkorasva ja käsidesi.</li> </ol> <h3 id="iso-reppu-gregory-border-carry-on-backpack-15-6" tabindex="-1">Iso reppu: Gregory Border Carry On Backpack 15.6&quot;</h3> <p>Avopuolisoni hankki meille <a href="https://www.belizia.fi/gregory-border-carry-on-reppu-one-size-total-black/139311-2426.html">Gregory Border Carry On -repun (belizia.fi)</a> ja olen ollut tosi tyytyväinen reppuun! Siinä on monta taskua tavaroiden järjestelyyn repun sisäpuolella ja ulkopuolella on tarpeeksi taskuja tavaroille, joita tarvitsee nopeasti tai helposti matkan aikana.</p> <p>Siinä on myös lantiovyö, joten repun kantaminen täytenäkin on suhteellisen helppoa. Aivan täydellinen tämä lantiovyö ei ole (ainakaan minulle), koska en saanut sitä aivan niin hyvin asetettua kuin halusin. Repun sivulla on myö tasku juomapullolle, joka ei ole ollut minusta kovin ilmiselvä ominaisuus monessa muussa repussa.</p> <p>Reppu on suunniteltu siten, että kaikki narut ja nauhat saa piiloon, jotta sen voi pistää helposti ruumaan.</p> <h3 id="pieni-laukku-chrome-kadet-sling" tabindex="-1">Pieni laukku: Chrome Kadet Sling</h3> <p>Alunperin hankin <a href="https://chromeindustries.com/products/kadet-slide?variant=40901435588668">Chrome Kadet Slinging (englanniksi, chromeindustries.com)</a> pyöräilyyn, kun tarvitsen vain pienen (mutta tarpeeksi ison!) laukun mukaan. Itselle tämä on ollut käyttötarkoitukseen hyvä, mutta olen huomannut, että se on suhteellisen järeä. Sinne mahtuu kätevästi 0,75 litran juomapullo kätevästi ja sen jälkeen esimerkiksi aurinkorasvapullo. Jos isoa vesipulloa ei tarvitse mukaan, niin tässä on tosi hyvin tilaa mille vain päivän aikana mukaan tarttuvalle asialle.</p> <p>Koska laukku on tarkoitettu pyöräilyyn, niin sen täytyy pysyä hyvin paikallaan selässä. Sen vuoksi siinä on rinnan päältä kulkeva hihna ja kainalon alta menevä tukihihna, joka kiinnittyy rinnan päältä kulkevaan hihnaan. Tämän tukihihnan saa irrotettua, jos haluaa.</p> <h2 id="samasta-aiheesta-muualla" tabindex="-1">Samasta aiheesta muualla</h2> <ul> <li><a href="https://hamatti.org/posts/traveling-europe-on-land-turku-to-prague/">Juha-Matti kirjoitti vuonna 2023 vastaavasta matkastaan Turusta Prahaan (englanniksi)</a>.</li> <li><a href="https://yle.fi/a/74-20099727?utm_source=social-media-share&amp;utm_medium=social&amp;utm_campaign=ylefiapp">Ylen juttu pintaa pitkin matkustamisesta (2024)</a>.</li> </ul> </content>
</entry>
<entry xml:lang="fi">
<title>Tärkeimmät oppini työelämästä</title>
<link href="https://samimaatta.fi/kirjoitukset/tarkeimmat-oppini-tyoelamasta/"/>
<updated>2024-06-29T00:00:00Z</updated>
<id>https://samimaatta.fi/kirjoitukset/tarkeimmat-oppini-tyoelamasta/</id>
<content type="html"><p>Pitäisi kirjoittaa, että oppini työelämässä <strong>tähän asti</strong>. Eihän sitä ole ehtinyt juuri ollakaan, sillä valmistumisestani on nyt kulunut vasta viisi vuotta.</p> <h2 id="jos-en-mina-niin-kuka" tabindex="-1">Jos en minä, niin kuka?</h2> <p>Muistan alussa miettineeni, että olenko paras valinta kyseiseen paikkaan, jossa olin. Mietin, että jossain tuolla on joku sopivampi henkilö tehtävään, jota tein.</p> <p>Olen tajunnut, että vaikka tällainen henkilö jossain olisi, niin hän ei ole nyt täällä. Siispä minä teen parhaani siinä tehtävässä, jossa olen, ja tavalla, joka on minulle ominaisin. Minulla on tietoja ja taitoja, joita yhdistämällä saan aikaan asioita, joita joku muu ei saisi.</p> <p>Tässä täytyy uskoa jokaisen ihmisen ainutlaatuisuuteen - myös itsensä.</p> <p>Oiva esimerkki tästä oli, että työni kautta <a href="www.celia.fi">Saavutettavuuskirjasto Celiassa</a> tiesin, että näkövammaisille opiskelijoille laaditaan omat ylioppilastutkinnon kokeet. Vuonna 2021 näissäkin kokeissa siirryttiin käyttämään samaa sähköistä koejärjestelmää kuin muissa kokeissa. Koska valmistuin matematiikan aineenopettajaksi, minulle oli tuttu Ylen ylläpitämä <a href="https://yle.fi/aihe/s/10002314">Abitreenit-sivusto</a>, jossa voi katsoa ja treenata vanhoja kokeita.</p> <p>Otin tuolloin yhteyttä Ylen Abitreenien toimitukseen ja ehdotin, että he voisivat julkaista jatkossa myös näkövammaisten kokeet - ja niin he tekivät! Lähellä sivuston ylälaitaa on nykyään linkki suoraan näihin kokeisiin.</p> <p>Olen ajatellut asiaa siten, että jos en olisi ollut tässä tehtävässä juuri silloin, niin olisi voinut olla niin, että tätä mahdollisuutta ei olisi käytetty.</p> <h2 id="valmis-joskus-on-parempi-kuin-valmis-ei-koskaan" tabindex="-1">&quot;Valmis joskus&quot; on parempi kuin &quot;valmis ei koskaan&quot;</h2> <p>Eräässä työtehtävässä ajattelin työskenteleväni tehokkaasti, mutta työtapani ei sopinut muulle tiimille. Pahimmillaan tämä olisi johtanut työn viivästymiseen tai jopa keskeytymiseen. Onnekseni asia otettiin puheeksi tiimin toimesta, joten sitä voitiin käsitellä.</p> <p>Keskustelun kautta löydettiin tapa, joka vei (minusta) suunniteltua enemmän aikaa, mutta oli parempi tapa työskennellä koko tiimille. Se paransi yhteishenkeä ja tiimityöskentelyä, mistä ajattelen olevan hyötyä työhyvinvoinnin näkökulmasta! Samalla tilaisuuden tullen pääsin osoittamaan, että kanssani kannattaa ottaa puheeksi epäkohdatkin.</p> <h2 id="opi-tunnistamaan-omien-vastuitesi-rajat" tabindex="-1">Opi tunnistamaan omien vastuitesi rajat</h2> <p>On tärkeää, että tietää, milloin jokin päätös on sellainen, jota et voi itse tehdä. Silloin asia otetaan puheeksi esihenkilön kanssa.</p> <p>Olen useammankin kerran todennut esihenkilölleni: &quot;Tässä ovat keksimäni vaihtoehdot, mutta kaipaan nyt päätöstäsi siitä, miten edetään.&quot;</p> <p>Erilaisia asioita on vaikea ratkaista, jos siihen ei ole valtuuksia. En voi mennä alueelle, jolla esihenkilöni työskentelee. On siis tärkeää, että näissä tilanteissa osaa tunnistaa työroolinsa rajat.</p> <h2 id="opi-tunnistamaan-mika-on-tarpeeksi-valmista" tabindex="-1">Opi tunnistamaan, mikä on tarpeeksi valmista</h2> <p>Tämä on asia, joka tuli jo puheeksi silloisen graduohjaajani kanssa: Milloin gradu on 90 prosenttia valmis?</p> <p>En muista, mistä luin seuraavan sitaatin, mutta puhuin siitä itse ohjaajalleni: &quot;Tiedän, että viimeisen 10 prosentin hinkkaamiseen minulta kuluisi sama aika kuin ensimmäisen 90 prosentin valmiiksi saamiseen.&quot;</p> <p>On tärkeä pohtia työtä tehdessä, että mitkä hetket ovat niitä, kun pyritään 100-prosenttiseen suoritukseen ja milloin vähempikin riittää. Tähän liittyen muistan myös opetusharjoitteluajoistani vierailevan opettajan luennolta lauseen: &quot;Tänään on ok tehdä 70-prosenttinen päivä.&quot;</p> <p>Minusta se on hyvä ohjenuora muistaa. Töitä kyllä ehtii tehdä.</p> <h2 id="tuotokseni-on-erillaan-minusta" tabindex="-1">Tuotokseni on erillään minusta</h2> <p>Tiedostan että, kun tuotan tekstiä, esimerkiksi oppikirjaan tai muistioon, niin se on erillään minusta henkilönä. Jos jokin asia on ilmaistu kankeasti, niin se ei tarkoita minun epäonnistumistani, vaan se on korjattava asia tuotoksessa.</p> <p>Lähetän työtäni kommentoitavaksi työkavereille, koska luotan heidän asiantuntijuuteensa. <strong>Toivon</strong>, että he löytävät jotain korjattavaa. Korjattavaa löytyy aina. Jos he eivät paneudu johonkin asiaan tarpeeksi korjattavaa löytääkseen, niin sekin kertoo jo, kannattaako asiaan vielä panostaa. Siksi onkin hyvä tunnistaa, milloin 90-prosenttisesti valmis riittää - se voi riittää sillä hetkellä muillekin.</p> </content>
</entry>
<entry xml:lang="fi">
<title>Kirjoittajamatkani</title>
<link href="https://samimaatta.fi/kirjoitukset/kirjoittajamatkani/"/>
<updated>2024-06-29T00:00:00Z</updated>
<id>https://samimaatta.fi/kirjoitukset/kirjoittajamatkani/</id>
<content type="html"><p>Juha-Matti Santala kirjoitti <a href="https://hamatti.org/posts/short-history-of-my-blogging-journey/">omasta blogausmatkastaan tähän päivään asti (englanniksi)</a> ja se sai minut pohtimaan omaani. Osittain siksi, että se jäisi itselle muistiin ja osittain siksi, että se voisi kiinnostaa jotakuta toista.</p> <h2 id="vuonna-2020-linked-in" tabindex="-1">Vuonna 2020: LinkedIn</h2> <p>Taisin liittyä ja aktivoitua LinkedInissä vakavasti, kun aloitin työt vuonna 2019 valmistumisen jälkeen. Koin, että olisi tärkeää olla jonkinlainen online-presenssi, ja työminänä se voisi onnistua hyvin.</p> <h3 id="kirjoittajan-blokki" tabindex="-1">Kirjoittajan blokki</h3> <p>Olin kauhuissani ajatuksesta, että kirjoittaisin jotain ja joku lukisi sen. Minulla oli erilaisia ajatuksia erilaisista esteistä, joiden takia en halunnut kirjoittaa, mutta nyttemmin olen löytänyt niille vastaukset:</p> <ul> <li>Entä jos kukaan ei lue, mitä kirjoitan? <ul> <li><strong>Vastaus</strong>: Sitten kukaan ei ole nähnyt juttua, jonka kirjoitin ja voin julkaista sen uudestaan. Se ei myöskään saattanut kiinnostanut ketään - se on oppimisen paikka.</li> </ul> </li> <li>Entä jos joku tulee kritisoimaan, mitä olen kirjoittanut? <ul> <li><strong>Vastaus</strong>: Jos se on järkevää kritiikkiä, niin siitä otetaan opiksi. Jos se ei ole järkevää, niin se jätetään huomiotta.</li> </ul> </li> <li>Entä jos kirjoitan ihan tyhmiä? <ul> <li><strong>Vastaus</strong>: Se kuuluu prosessiin. Tason parantumisen huomaa suoraan siitä, että miten vanhemmat kirjoitukset hävettävät.</li> </ul> </li> </ul> <h3 id="mista-sitten-kirjoitin" tabindex="-1">Mistä sitten kirjoitin?</h3> <p>Jotenkin onnistuin selättämään näitä ajatuksia, sillä aloitin kirjoittamisen ja julkaisemisen. Muistan ajatelleeni, että &quot;haluan oppia kirjoittamaan&quot; LinkedInissä. Minua kiinnosti, miten minun pitäisi kirjoittaa ja mistä, että ihmiset tulisivat lukemaan tekstejäni. Lähtökohta kirjoittamiselle oli siis hyvin käytännönläheinen ja hyötyä hakeva.</p> <p>Katsomalla kiinnitettyjä julkaisujani LinkedInissä kirjoitin</p> <ul> <li>työelämästä vastavalmistuneen näkökulmasta</li> <li>siitä kerrasta, kun pääsin Euroopan avaruusjärjestön haastatteluun</li> <li>miten matematiikan opetukseen voisi yhdistää yrittäjyyskasvatuksen keinoja</li> <li>erinäisiä kirjoituksia koulun tilasta Suomessa</li> <li>mitä muita töitä opettaja voisi tehdä kuin opettaa</li> <li>näillekin sivuille kokoamista kirjoituksista koskien <a href="/aiheet/luokkaloikkarit/">luokkaloikkaa</a>.</li> </ul> <p>Sanonnan mukaan &quot;yritin heittää spagettia seinään ja katsoa, mikä tarttuu&quot;. Menneistä kirjoitusaiheistani eniten kiinnostusta ovat herättäneet opettajan muut urapolut ja luokkaloikkaamista.</p> <h2 id="twitter" tabindex="-1">Twitter</h2> <p>En ole aivan varma, milloin menin Twitteriin. Se tapahtui LinkedInin jälkeen eli veikkaisin vuotta 2021 tai 2022. Enkä oikeastaan muista, että miksi liityin mukaan. Muistelen, että se liittyi epämääräiseen tunteeseen siitä, että sitä kautta saisin näkyvyyttä... jollekin asialle.</p> <p>Kuten LinkedInissä, niin Twitterissäkin kirjoitin muoto edellä. Sisältö oli sinänsä toissijaista, mutta ajatuksena olisi ollut, että kirjoitan jostain sellaisesta, josta kukaan muu ei kirjoita. Tämän vuoksi keskityin enemmän saavutettavuuden ja joidenkin LinkedIn-tekstien kierrättämäiseen Twitterissä.</p> <h2 id="vuonna-2021-quenched" tabindex="-1">Vuonna 2021: Quenched</h2> <p>Twitter ja LinkedIn rajoittivat julkaisujen pituuksia, ja koin tarvetta kirjoittaa pitempiä tekstejä.</p> <p>LinkedInissä pystyi kirjoittamaan pitempiä &quot;artikkeleita&quot;, mutta niiden löydettävyys oli (ja on) todella huono. Jopa omien artikkelien löytäminen jälkikäteen oli hankalaa. Sen lisäksi aloin karsastamaan ajatusta siitä, että jokin yritys (LinkedInin tapuksessa Microsoft) omistaisi julkaisuni.</p> <p>Koin myös vahvempaa tarvetta luoda omannäköiseni ympäristön. Tähän sain innoitusta <a href="https://www.finna.fi/Search/Results?lookfor=show+your+work+austin+kleon&amp;type=AllFields&amp;limit=20&amp;sort=relevance%2Cid+asc">Austin Kleonin &quot;Show your work&quot; -kirjasta (Finna)</a>, jossa korostettiin oman temmellyskentän tärkeyttä.</p> <p>Suosittelen lämpimästi kirjan lukemista - etenkin, jos joku kokee ettei osaa tai tiedä mitään kiinnostavaa! Kirjassa korostetaan ajatusta, että se mikä tuntuu tavalliselta sinulle, voi olla käänteentekevää toiselle. Et tiedä sitä etukäteen ellet aseta itseäsi näytille.</p> <p>En ollut ilmeisesti valmis käyttämään omaa nimeäni nettisivuilla. Tämä ehkä johtui siitä, että halusin kirjoitukseni olevan tunnettuja ennemmin ilmiönä kuin liittyneinä henkilöön. Valitsin sivuston nimeksi &quot;Quenched&quot;, koska yksinkertaisesti tykkäsin sanasta ja <a href="https://www.youtube.com/watch?v=pjQHpD2WQL4">&quot;It will quench ya!&quot; (englanniksi, Youtube)</a>. Ajatus oli, että opin ja jaan tietojani.</p> <p>Päädyin tuolloin käyttämään Wordpressiä alustana, mutta kyllästyin siihen ja ajatukseen sen järjestelmän toiminnasta. Halusin mieluummin keskittyä puhtaaseen HTML- ja CSS-koodiin. Halusin harjoitella saavutettavan nettisivun tekemistä. Nämä yhdistettyinä toisiinsa osoitti, että minulle Wordpress oli liian kankea järjestelmä.</p> <h2 id="vuonna-2022-samimaatta-fi" tabindex="-1">Vuonna 2022: samimaatta.fi</h2> <p>Rekisteröin samimaatta.fi -domainin kesäkuussa 2022 Quenchedin jälkeen. Kehitin nettisivut <a href="https://www.11ty.dev/">Eleventyn (englanniksi)</a>, koska olin sattunut huomaamaan, kuinka sitä mainostettiin nopeana, pelkistettynä ja siinä pelattiin pääasiassa HTML- ja CSS-koodin kanssa. Markdown ja JavaScript ovat mahdollisia myös. Halusin kuitenkin päästä lähemmäs itse nettisivujen kehitystä, joten tämä sopi minulle hyvin. Siten kirjoittamisen edellytykseksi muodostui omien nettisivujen suunnittelu ja koodaaminen.</p> <h2 id="vuonna-2023-helsingin-jalankulkijat" tabindex="-1">Vuonna 2023: Helsingin jalankulkijat</h2> <p>Ylläpidän <a href="https://jalankulkijat.fi/">Helsingin jalankulkijoiden nettisivuja</a>. Olen kirjoittanut monia viikon ajatuksia, jotka ovat kolumni- tai blogityyppisiä kirjoituksia jäsenistöltä.</p> <p>Omissa kirjoituksissani pyrin monesti tuomaan esille jonkin yleisen haasteen, joka nousee esille, kun puhutaan käveltävämmästä kaupungista ja vastaan siihen tutkimukseen nojaten. Vaihtoehtoisesti kirjoitan ajattelutapojen muuttumisesta ja, että jalankulkijoiden oikeuksia tulisi edistää.</p> <p>Panostan nettisivujen kehityksessä niiden saavutettavuuteen ja myös tekstien osalta. Editoin tekstit, jotka julkaistaan sivuilla siten, että ne olisivat (mielestäni) saavutettavat. Olen erityisen ylpeä yhteenvedosta, jonka tein <a href="https://jalankulkijat.fi/ajankohtaista/kaveltava-kaupunki-rakennetaan-suunnitelma-kerrallaan/">katusuunnitelmien kommentoinnista (jalankulkijat.fi)</a>.</p> <h2 id="miksi-kirjoitan-nyt" tabindex="-1">Miksi kirjoitan nyt?</h2> <p>Yritän olla hyödyksi muille. Olen päässyt hyvin yli ajatuksesta, että kirjoittamani asiat olisivat jotenkin turhanpäiväisiä tai 'tyhmiä'.</p> <p>Olen huomannut, että kirjoittamalla löydän paremmin oman ääneni. Asiat, joita voi olla hankala sanoa vakavasti ääneen, ovat helpompia kirjoittaa.</p> <p>Yhdistystoiminnassa nautin tutkitun tiedon löytämisestä ja sen yhdistämisestä vaikutustyöhön. Jalankulkijan oikeudet tuntuvat nykyään itselle hyvin ilmiselviltä ja, että niissä olisi parantamisen varaa. Yritän siis vakuuttaa muutkin ihmiset tästä ajatuksesta.</p> <h3 id="missa-kirjoitan-nyt" tabindex="-1">Missä kirjoitan nyt?</h3> <h4 id="omat-nettisivut-nyt" tabindex="-1">Omat nettisivut nyt</h4> <p>Nettisivuni ovat varsinainen sekasoppa - ja se on minusta hyvä! Huono ehkä siltä kannalta, jos joku nimenomaan seuraisi sivujeni RSS-syötettä, jotta saa luettua tietynlaisia juttuja. No, se on oman valtakunnan sivuvaikutus.</p> <h4 id="linked-in-nyt" tabindex="-1">LinkedIn nyt</h4> <p>Huomaan nyttemmin kirjoittamiseni LinkedIniin vähentyneen. Se on edelleen tiukemmin työminän alusta, mutta olen yrittänyt kirjoittaa laajemmin saavutettavuudesta ja jalankulun edistämisestä.</p> <p>Suurin kehu, jonka olen saanut on ollut, että täytän sellaisen nurkan saavutettavuuskeskustelussa, jota kukaan muu ei täytä. Kirjoituksiani pidetään siis arvokkaina.</p> <h4 id="mastodon-nyt" tabindex="-1">Mastodon nyt</h4> <p>Lopetettuani Twitterin käytön, siirryin Mastodoniin.</p> <p>Mastodonissa kirjoitan enemmän jalankulkijoiden oikeuksiin liittyvistä asioista ja ylläpidän Helsingin jalankulkijoiden yhdistyksen Mastodon-tiliä. Haluan kuitenkin pitää Mastodonin jokseenkin rentona kanavana, enkä lähesty asioita töitteni näkökulmasta. Saatan ponnistaa joitain blogikirjoitusideoita Mastodonissa ja sitten kirjoittaa ne varsinaisiksi kirjoituksiksi tänne.</p> <p>Kirjoittelu Mastodonissa on omiaan luomaan sellaista nettiyhteisöä, jossa haluaisi olla.</p> </content>
</entry>
<entry xml:lang="en">
<title>Controllers not working in It Takes Two (PC)</title>
<link href="https://samimaatta.fi/en/controllers-not-working-in-it-takes-two-pc/"/>
<updated>2024-06-22T00:00:00Z</updated>
<id>https://samimaatta.fi/en/controllers-not-working-in-it-takes-two-pc/</id>
<content type="html"><p>Solution: Close the Steam app. It messes with the controllers when opened together with the EA app.</p> </content>
</entry>
<entry xml:lang="fi">
<title>Käytännön matematiikkaa: Betonin paksuus</title>
<link href="https://samimaatta.fi/kirjoitukset/kaytannon-matematiikkaa-betonin-paksuus/"/>
<updated>2024-06-18T00:00:00Z</updated>
<id>https://samimaatta.fi/kirjoitukset/kaytannon-matematiikkaa-betonin-paksuus/</id>
<content type="html"><p>Kaverini työskentelee alalla, jolla oli olennaista tietää betonin paksuus tietyssä kohtaa. Betoni oli valettu kulmassa, jolloin suoraan ylhäältä otettu paksuus <math><mi>x</mi></math> ei riittänyt, vaan myös pinnan kanssa kohtisuora paksuus <math><mi>y</mi></math> haluttiin tietää myös.</p> <figure><figcaption>Lähtötilanne, jossa betoni on valettu 28 prosentin kaltevuuskulmaan.</figcaption><picture><source type="image/webp" srcset="/img/mBL32fQ15q-347.webp 347w"><img loading="lazy" decoding="async" src="/img/mBL32fQ15q-347.jpeg" alt="Valokuva piirroksesta. Suunnikas, jonka alareunassa on kaltevuus, vasen sivu on x ja kohtisuora paksuus y. Vasen yläkulma on alfa." width="347" height="224"></picture></figure> <p>Mitä siis tiedetään? Mitattu paksuus <math><mi>x</mi></math> ja 28 prosentin nousu.</p> <p>Huomasin, että suunnikkaan kulmaan muodostuu suorakulmainen kolmio, jonka kulmat ovat <math><mi>α</mi></math> ja <math><mi>γ</mi></math>. Jäljelle jäänyt kulma on luonnollisesti suora kulma eli 90 asteen kulma.</p> <p>Kaltevuuskulman prosentit voi ajatella niin, että jos edetään 100 metriä, niin pinta nousee samalla matkalla 28 metriä. Koska kyseessä on suunnikas, niin tiedetään, että sen vastakkaiset sivut ovat keskenään yhdensuuntaiset. Tällöin janoja jatkamalla voidaan tutkia samankohtaisia kulmia.</p> <figure><figcaption>100 metrin eteneminen ja 28 metrin nousu. Kulmien <math><mi>&alpha;</mi></math> ja <math><mi>&beta; </mi></math> samankohtaisuus.</figcaption><picture><source type="image/webp" srcset="/img/XQIZMWiiMY-209.webp 209w"><img loading="lazy" decoding="async" src="/img/XQIZMWiiMY-209.jpeg" alt="Valokuva piirroksesta. Selitetty yllä olevassa tekstissä." width="209" height="195"></picture></figure> <p>Tästä saadaan kätevästi selvitettyä kulman <math><mi>α</mi></math> suuruus, koska se muodostuu suorakulmaisen kolmion sisään, jonka sivujen pituudet tiedetään. Trigonometriasta tunnetaan, että tangentti (merkitään <math><mo>tan</mo></math>) tarkoittaa <math><mfrac><mtext>vastainen kateetti</mtext><mtext>viereinen kateetti</mtext></mfrac></math>.</p> <p>Kulman <math><mi>α</mi></math> vastaisen kateetin pituus on 100 ja viereisen kateetin 28.</p> <figure><figcaption>Lasketaan kulman <math><mi>&alpha;</mi></math> suuruus trigonometrian avulla.</figcaption><picture><source type="image/webp" srcset="/img/7T8E1NReYM-244.webp 244w"><img loading="lazy" decoding="async" src="/img/7T8E1NReYM-244.jpeg" alt="Valokuva piirroksesta. Suunnikkaaseen muodostuu alfan ja betan kanssa samankohtaisia ja täten samansuuruisia kulmia. Alla tangetin avulla muodostettu yhtälö." width="244" height="333"></picture></figure> <p>Trigonometrian avulla saadaan aikaan alla oleva yhtälö ja se ratkaistaan:</p> <math display="block"> <mtable> <mtr> <mtd></mtd> <mtd> <mrow> <mo>tan</mo><mi>&alpha;</mi> </mrow> </mtd> <mtd> <mo>=</mo> </mtd> <mtd> <mfrac> <mn> 100 </mn> <mn> 28 </mn> </mfrac> </mtd> </mtr> <mtr> <mtd> &DoubleLeftRightArrow; </mtd> <mtd> <mi>&alpha;</mi> </mtd> <mtd> <mo>=</mo> </mtd> <mtd> <mrow><mo>arctan</mo> <mfrac> <mn> 100 </mn> <mn> 28 </mn> </mfrac> </mrow> <mtext>.</mtext> </mtd> </mtr> </mtable> </math> <figure><figcaption>Yhdistettynä alkuperäiseen tilanteeseen saadaan ratkaistava yhtälö.</figcaption><picture><source type="image/webp" srcset="/img/mBL32fQ15q-347.webp 347w"><img loading="lazy" decoding="async" src="/img/mBL32fQ15q-347.jpeg" alt="Valokuva piirroksesta. Suunnikkaan vasempaan kulmaan muodostuvassa suorakulmaisessa kolmiossa kulmaa alfa vastapäätä on sivu y ja vieressä sivu x." width="347" height="224"></picture></figure> <p>Tilanteesta muodostetaan nyt yhtälö ja ratkaistaan se:</p> <math display="block"> <mtable> <mtr> <mtd></mtd> <mtd> <mrow> <mo>sin</mo><mi>&alpha;</mi> </mrow> </mtd> <mtd> <mo>=</mo> </mtd> <mtd> <mfrac> <mi> y </mi> <mi> x </mi> </mfrac> </mtd> </mtr> <mtr> <mtd> &DoubleLeftRightArrow; </mtd> <mtd> <mi>y</mi> </mtd> <mtd> <mo>=</mo> </mtd> <mtd> <mi>x</mi> <mo>&centerdot;</mo> <mrow> <mo>sin</mo><mi>&alpha;</mi> </mrow> <mtext>.</mtext> </mtd> </mtr> </mtable> </math> <p>Yhdistetään tähän tietoon ylempi yhtälö, josta saimme kulman <math><mi>α</mi></math> lausekkeen</p> <math display="block"> <mi>y</mi> <mo>=</mo> <mi>x</mi> <mo>&centerdot;</mo> <mrow> <mo>sin</mo><mo>(</mo><mrow><mo>arctan</mo> <mfrac> <mn> 100 </mn> <mn> 28 </mn> </mfrac> </mrow> <mo>)</mo> <mo>=</mo> <mi>x</mi><mo>&InvisibleTimes;</mo> <mn>0.962...</mn> <mo>&approx;</mo> <mn>0.96</mn> <mo>&InvisibleTimes;</mo> <mi>x</mi> <mtext>.</mtext> </mrow></math> <p>Nähdään siis, että kohtisuora paksuus <math><mi>y</mi></math> on jopa 96 prosenttia suoraan ylhäältä mitatusta paksuudesta <math><mi>x</mi></math>. Jos sanottaisiin, että suoraan ylhäältä mitattu paksuus olisi 1 metri, niin kohtisuora paksuus olisi 0,96 metriä. Siis jos käyttäisi vain arvoa <math><mi>x</mi></math>, niin heittoa syntyisi 4 senttimetriä.</p> <h2 id="kaiken-kaikkiaan-kiva" tabindex="-1">Kaiken kaikkiaan kiva</h2> <p>Kun on opiskellut pitkän aikaa matematiikkaa, joka on monessa suhteessa teoreettista, niin käytännön esimerkit siitä, mitä on oppinut ovat todella kivoja. Aineenopettajanakin aika kuluu pitkälti kuviteltujen tilanteiden hahmotteluun, joista ei saa samanlaista nautintoa kuin siitä, että on todella ratkaissut jotain, mistä on konkreettista hyötyä.</p> </content>
</entry>
<entry xml:lang="fi">
<title>Onko 0 parillinen vai pariton luku?</title>
<link href="https://samimaatta.fi/kirjoitukset/onko-0-parillinen-vai-pariton-luku/"/>
<updated>2024-05-25T00:00:00Z</updated>
<id>https://samimaatta.fi/kirjoitukset/onko-0-parillinen-vai-pariton-luku/</id>
<content type="html"><p>Aika monesti sanotaan, että luvun parillisuuden voi selvittää siten, että jos luvun jakaa kahdella, eikä mitään jää yli, niin luku on parillinen.</p> <p>Esimerkiksi luvun <math><mn>8</mn></math> näkee helposti olevan parillinen, koska <math><mn>8</mn><mi>/</mi><mn>2</mn><mo>=</mo><mn>4</mn></math> eli meille ei jää ylimääräisiä osia. Sanotaan, että <strong>jako menee tasan</strong>.</p> <p>Sen voi ajatella sitäkin kautta, että jos 8 vesimelonia (koska jaettavat ovat aina jättimäisiä asioita) jaetaan kahdelle henkilölle, niin saavatko molemmat yhtä monta? Tässä tapauksessa kyllä.</p> <p>Vastaavasti luku <math><mn>5</mn></math> ei ole parillinen, koska jaettuna kahdella meille jää yksi yli <math><mn>5</mn><mi>/</mi><mn>2</mn><mo>=</mo><mn>2</mn><mtext>, jää yli </mtext><mn>1</mn></math>. Sanotaan, että <strong>jako ei mene tasan</strong>.</p> <h2 id="entas-0" tabindex="-1">Entäs 0?</h2> <p>Nollan voi jakaa luvulla 2 ja jako menee tosiaan 'tasan'. Tasan siinä mielessä, että mitään ei jää yli. Toisaalta mitään ei jäisi yli myöskään jakamalla 0 millä vain luvulla.</p> <p>Ei siis tunnu kovin tyydyttävältä vastaukselta, että 0 menee jakaessa tasan luvulla 2 ja siksi se olisi parillinen. Se voi toki jollekulle riittää, mutta nyt se ei riitä meille!</p> <h2 id="visuaalinen-selitys" tabindex="-1">Visuaalinen selitys</h2> <p>Jos piirretään lukujana, niin siitä näkee aika selkeästi, että joka toisen luvun ollessa parillinen ja joka toisen pariton, niin nolla jää kivasti parittomien lukujen väliin. Tästä voisi jo päätellä, että nolla on parillinen.</p> <p>Entä jos tämäkään selitys ei riitä?</p> <h2 id="milta-parilliset-luvut-nayttavat" tabindex="-1">Miltä parilliset luvut näyttävät?</h2> <p>Jotenkin luku 2 liittyy kaikkiin parillisiin lukuihin. Sillä jaettaessa jäljelle pitäisi jäädä 'tasan mennyt luku'. Mitä tämä tarkoittaa?</p> <p>Tällainen 'tasan mennyt luku' on kokonaisluku. Kaikkia kokonaislukuja sanotaan <strong>kokonaislukujen joukoksi</strong> ja sitä merkitään symbolilla ℤ (englanniksi &quot;<span lang="en">doublestruck z</span>&quot;, suomeksi &quot;kaksoisviiva z&quot;).</p> <p>Voidaan siis sanoa, että jos luku <math><mi>x</mi></math> jaetaan luvulla 2 ja lopputuloksena on jokin luku <math><mi>k</mi></math> siten, että se on kokonaisluku, niin luku <math><mi>x</mi></math> on parillinen.</p> <p>Matemaattisesti sen voisi esittää näin: <math display="block"><mi>x</mi><mo>/</mo><mn>2</mn><mo>=</mo><mi>k</mi><mtext>.</mtext></math></p> <p>Muistelemalla yhtälönratkaisua tämän voi vielä muokata kertomalla puolittain luvulla 2, ja saadaan</p> <p><math display="block"><mi>x</mi><mo>=</mo><mn>2</mn><mo>⁢</mo><mi>k</mi><mtext>.</mtext></math></p> <p>Erilaisia parillisia lukuja saa sijoittamalla kokonaisluvun <math><mi>k</mi></math> paikalle eri kokonaislukuja:</p> <p><math display="block"><mi>x</mi><mo>=</mo><mn>2</mn><mo>·</mo><mi>2</mi><mo>=</mo><mn>4</mn><mtext>,</mtext></math> <math display="block"><mi>x</mi><mo>=</mo><mn>2</mn><mo>·</mo><mi>5</mi><mo>=</mo><mn>10</mn><mtext>,</mtext></math> <math display="block"><mi>x</mi><mo>=</mo><mn>2</mn><mo>·</mo><mi>90</mi><mo>=</mo><mn>180</mn><mtext>.</mtext></math></p> <p>Kokeile itse pari!</p> <h2 id="milta-parittomat-luvut-sitten-nayttavat" tabindex="-1">Miltä parittomat luvut sitten näyttävät?</h2> <p>Parittomat luvut on helppo määritellä parillisiin lukuihin nojaten. Parittomien lukujen olennaisin ominaisuus on, että sellainen luku ei mene tasan jaettaessa luvulla 2.</p> <p>Yksinkertaisimmillaan tämä saadaan aikaan käyttämällä parittomalla luvulla <math><mi>y</mi></math> muotoa</p> <p><math display="block"><mi>y</mi><mo>=</mo><mn>2</mn><mo>⁢</mo><mi>k</mi><mo>+</mo><mn>1</mn><mtext>.</mtext></math></p> <p>Nyt aina, kun tällainen luku jaetaan kahdella, niin siitä jää 1 yli.</p> <p>Erilaisia parittomia lukuja:</p> <p><math display="block"><mi>y</mi><mo>=</mo><mn>2</mn><mo>·</mo><mi>2</mi><mo>+</mo><mn>1</mn><mo>=</mo><mn>5</mn><mtext>,</mtext></math> <math display="block"><mi>y</mi><mo>=</mo><mn>2</mn><mo>·</mo><mi>5</mi><mo>+</mo><mn>1</mn><mo>=</mo><mn>11</mn><mtext>,</mtext></math> <math display="block"><mi>y</mi><mo>=</mo><mn>2</mn><mo>·</mo><mi>90</mi><mo>+</mo><mn>1</mn><mo>=</mo><mn>181</mn><mtext>.</mtext></math></p> <p>Saat siis mistä vain keksimästäsi parillisesta luvusta parittoman lisäämällä siihen yhden.</p> <h2 id="no-enta-se-0" tabindex="-1">No, entä se 0?</h2> <p>Nyt voidaan tutkia, että voiko nollaa kirjoittaa kummallakaan parittoman luvun tai parittoman luvun tapaan. Tehtävänä on nyt saada joko <math><mi>y</mi><mo>=</mo><mn>2</mn><mo>⁢</mo><mi>k</mi><mo>+</mo><mn>1</mn></math> tai <math><mi>x</mi><mo>/</mo><mn>2</mn><mo>=</mo><mi>k</mi></math> nollaksi.</p> <p>Helpoimmin se ehkä tapahtuu kokeilemalla, että millä kokonaisluvun <math><mi> k</mi></math>:n arvolla saadaan jommasta kummasta muodosta luku 0.</p> <p>Vaihtoehtoja ei ole monia. Kokeillaan lukua itseään eli entä jos <math><mi>k</mi><mo>=</mo><mn>0</mn></math>.</p> <p>Nyt parittomana lukuna saataisiin</p> <p><math display="block"><mi>y</mi><mo>=</mo><mn>2</mn><mo>·</mo><mn>0</mn><mo>+</mo><mn>1</mn><mo>=</mo><mn>1<mn></mn></mn></math></p> <p>ja parillisena lukuna</p> <p><math display="block"><mi>y</mi><mo>=</mo><mn>2</mn><mo>·</mo><mn>0</mn><mo>=</mo><mn>0<mn><mtext>.</mtext></mn></mn></math></p> <p>Sieltähän se tuli! Kokeilemalla vielä eri lukuja <math><mi>k</mi></math>:n paikalle voit huomata, että nollaa ei saa muutoin ilmestymään - tai sitten voit myös tehdä yhtälön, jossa yrität ratkaista <math><mi>k</mi></math>:n arvon:</p> <p><math display="block"><mi>y</mi><mo>=</mo><mn>2</mn><mo>·</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>=</mo><mn>0<mn></mn></mn></math></p> <p>ja</p> <p><math display="block"><mi>y</mi><mo>=</mo><mn>2</mn><mo>·</mo><mi>k</mi><mo>=</mo><mn>0<mn><mtext>.</mtext></mn></mn></math></p> </content>
</entry>
<entry xml:lang="en">
<title>A custom collection to sort events with Eleventy</title>
<link href="https://samimaatta.fi/en/a-custom-collection-to-sort-events-with-eleventy/"/>
<updated>2024-05-09T00:00:00Z</updated>
<id>https://samimaatta.fi/en/a-custom-collection-to-sort-events-with-eleventy/</id>
<content type="html"><p>I created and update the <a href="https://jalankulkijat.fi/en/">Helsinki Pedestrians' Association's website</a> and since we do events I wanted to be able to display upcoming events in the order they coming up in. This wasn't so straightforward, since Eleventy doesn't support a secondary date data, only the creation date.</p> <h2 id="objectives-for-the-custom-collection" tabindex="-1">Objectives for the custom collection</h2> <p>I figured that I have to make a custom collection, because I wanted to</p> <ul> <li>sort the event posts by the event date, not the creation date</li> <li>filter out events that have past</li> <li>generate a &quot;past event&quot; banner to past events.</li> </ul> <h2 id="front-matter-in-a-post-for-the-nunjucks-and-collection-to-work" tabindex="-1">Front matter in a post for the Nunjucks and collection to work</h2> <p>Here is the front matter data for an event post:</p> <pre class="language-yaml"><code class="language-yaml"><span class="token key atrule">tags</span><span class="token punctuation">:</span><br> <span class="token punctuation">-</span> Event<br><br><span class="token key atrule">eventDate</span><span class="token punctuation">:</span> <span class="token datetime number">2024-05-06</span><br><span class="token key atrule">publishDate</span><span class="token punctuation">:</span> <span class="token datetime number">2024-04-21</span><br><span class="token punctuation">---</span></code></pre> <p>I wanted to use the tag &quot;<strong>Event</strong>&quot; to pick up the relevant collection. Then I wanted the sorting of events to happen based on the <code>eventDate</code> data, not <code>publishDate</code>.</p> <h2 id="the-custom-collection-in-the-configuration-file" tabindex="-1">The custom collection in the configuration file</h2> <p>I delved into the Eleventy documentation, which isn't the clearest (to me). So, in addition I ran into somebody asking a sort of similar question on Eleventy GitHub.</p> <p>From there I figured an outline that I should get to work. The finished code is next.</p> <p>In the <code>.eleventy.js</code> (or equivalent configuration file):</p> <pre class="language-js"><code class="language-js">eleventyConfig<span class="token punctuation">.</span><span class="token function">addCollection</span><span class="token punctuation">(</span><span class="token string">"events"</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">collection</span><span class="token punctuation">)</span> <span class="token operator">=></span><br> collection<br> <span class="token punctuation">.</span><span class="token function">getFilteredByTag</span><span class="token punctuation">(</span><span class="token string">"Event"</span><span class="token punctuation">)</span><br> <span class="token punctuation">.</span><span class="token function">filter</span><span class="token punctuation">(</span><span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token parameter">item</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><br> <span class="token keyword">var</span> dateToday <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br> <span class="token keyword">if</span> <span class="token punctuation">(</span>item<span class="token punctuation">.</span>data<span class="token punctuation">.</span>eventDate <span class="token operator">></span> dateToday<span class="token punctuation">)</span> <span class="token punctuation">{</span><br> <span class="token keyword">return</span> item<span class="token punctuation">;</span><br> <span class="token punctuation">}</span><br> <span class="token punctuation">}</span><span class="token punctuation">)</span><br> <span class="token punctuation">.</span><span class="token function">sort</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">a<span class="token punctuation">,</span> b</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><br> <span class="token keyword">return</span> a<span class="token punctuation">.</span>data<span class="token punctuation">.</span>eventDate <span class="token operator">-</span> b<span class="token punctuation">.</span>data<span class="token punctuation">.</span>eventDate<span class="token punctuation">;</span><br> <span class="token punctuation">}</span><span class="token punctuation">)</span><br><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> <ol> <li> <p>I used the <code>eleventyConfig.addCollection()</code> function. I gave the collection name &quot;<strong>events</strong>&quot;.</p> </li> <li> <p>Next filter the collection, so that you only get the posts tagged &quot;<strong>Event</strong>&quot; with <code>.getFilteredByTag(&quot;Event&quot;)</code>.</p> </li> <li> <p>After that I make the custom filter that uses the current day's date for filtering out past events.</p> <ul> <li>The <code>Date()</code> function returns the current date in this kind of format: &quot;Thu May 09 2024 03:00:00 GMT+0300 (Eastern European summer time)&quot;. Then it gets compared to the post's <code>eventDate</code> with the if statement: <code>if (item.data.eventDate &gt; dateToday)</code>. The condition passes the upcoming event to the array.</li> </ul> </li> <li> <p>The last part <code>.sort()</code> sorts the array according the <code>eventDate</code> data rather than the default date.</p> </li> </ol> <p>Now the this filtered custom collection can be used in a template.</p> <h2 id="how-to-implement-the-custom-collection-in-nunjucks" tabindex="-1">How to implement the custom collection in Nunjucks</h2> <p>The Nunjucks snippet that produces the event list or a message with the text that there are no upcoming events:</p> <pre class="language-liquid"><code class="language-liquid"><span class="token liquid language-liquid"><span class="token delimiter punctuation">{%</span> set nextEvents <span class="token operator">=</span> collections<span class="token punctuation">.</span>events <span class="token delimiter punctuation">%}</span></span><br><br>## Upcoming events (<span class="token liquid language-liquid"><span class="token delimiter punctuation">{{</span> nextEvents<span class="token punctuation">.</span>length <span class="token delimiter punctuation">}}</span></span>)<br><br><span class="token liquid language-liquid"><span class="token delimiter punctuation">{%</span> <span class="token keyword">if</span> nextEvent<span class="token punctuation">.</span>length <span class="token operator">==</span> <span class="token number">0</span> <span class="token delimiter punctuation">%}</span></span><br><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>post-card<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><br><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>No upcoming events at this time!<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span><br><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span><br><span class="token liquid language-liquid"><span class="token delimiter punctuation">{%</span> <span class="token keyword">else</span> <span class="token delimiter punctuation">%}</span></span><br><br><span class="token liquid language-liquid"><span class="token delimiter punctuation">{%</span> <span class="token keyword">for</span> post <span class="token keyword">in</span> nextEvents <span class="token delimiter punctuation">%}</span></span><br><br><span class="token liquid language-liquid"><span class="token delimiter punctuation">{%</span> <span class="token keyword">include</span> <span class="token string">"partials/index-postCard.njk"</span> <span class="token delimiter punctuation">%}</span></span><br><br><span class="token liquid language-liquid"><span class="token delimiter punctuation">{%</span> <span class="token keyword">endfor</span> <span class="token delimiter punctuation">%}</span></span><br><span class="token liquid language-liquid"><span class="token delimiter punctuation">{%</span> <span class="token keyword">endif</span> <span class="token delimiter punctuation">%}</span></span></code></pre> <ul> <li>Using the custom collections happens right at the start with <code>{% set nextEvents = collections.events %}</code>.</li> <li><code>## Upcoming events ({{ nextEvents.length }})</code> generates a count of upcoming events.</li> </ul> <p>The rest is pretty self-explanatory use of an if statement.</p> <p>This snippet produces the filtered list of events that is sorted in a way that the next upcoming event is first and the latest is in the bottom.</p> <p><strong>Important!</strong> You have to notice that the events list gets updated only when the site is built. So, either you can set up an automatic way of doing this or just let your natural build cycle filter past events out.</p> <h2 id="updating-the-event-with-the-past-notice" tabindex="-1">Updating the event with the past notice</h2> <p>Global data for the current date to use anywhere in the files in <code>.eleventy.js</code> (or equivalent configuration file):</p> <pre class="language-js"><code class="language-js">eleventyConfig<span class="token punctuation">.</span><span class="token function">addGlobalData</span><span class="token punctuation">(</span><span class="token string">"dateToday"</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> <p>This one I have implemented in my <code>post.njk</code> layout right after the post's heading:</p> <pre class="language-liquid"><code class="language-liquid"><span class="token liquid language-liquid"><span class="token delimiter punctuation">{%</span> <span class="token keyword">if</span> eventDate <span class="token operator">&lt;</span> dateToday <span class="token delimiter punctuation">%}</span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>alert<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>strong</span><span class="token punctuation">></span></span>This is a past event<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>strong</span><span class="token punctuation">></span></span> See the upcoming events on the home page.<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span>.<br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">></span></span><br><span class="token liquid language-liquid"><span class="token delimiter punctuation">{%</span> <span class="token keyword">endif</span> <span class="token delimiter punctuation">%}</span></span></code></pre> <p><strong>Important!</strong> This one also gets updated when it gets built.</p> </content>
</entry>
<entry xml:lang="en">
<title>Eleventy Image problem with Netlify's build</title>
<link href="https://samimaatta.fi/en/eleventy-image-problem-with-netlify-s-build/"/>
<updated>2024-04-05T00:00:00Z</updated>
<id>https://samimaatta.fi/en/eleventy-image-problem-with-netlify-s-build/</id>
<content type="html"><p>I host my website with <a href="https://www.netlify.com/">Netlify</a>. I use <a href="https://www.11ty.dev/">Eleventy</a> to power the thing.</p> <p>Version of Eleventy that I use: 3.0.0-alpha.5. Unrelated to this post's problem, I also had to update Netlify's Node version to use the newest version of Eleventy. That might be your problem too.</p> <h2 id="long-story-short" tabindex="-1">Long story short</h2> <p>I implemented <a href="https://www.11ty.dev/docs/plugins/image/#eleventy-transform">Eleventy Image (Eleventy Transform way)</a> and Netlify's build step started failing.</p> <p>I included <code>outputDir: &quot;public/img/&quot;</code> into my config file to get through local build step. Still Netlify's build step was failing.</p> <p><strong>Reason</strong>: I was using the wrong slashes: \ (backwards slash) for inside <code>img</code> tags in my code, so Netlify's build step failed, because of that. I changed those into forward slashes / and it started working again.</p> <p>Below is the story in longer form, if it will be helpful to somebody else.</p> <h2 id="optimizing-images" tabindex="-1">Optimizing images</h2> <p>I wanted to optimize my images to get achieve the four 100's score of the Lighthouse test - and to be kinder to slower connections that people might use.</p> <p>Eleventy provides the <a href="https://www.11ty.dev/docs/plugins/image/">Image</a> plugin to make this process automatic. It generates multiple versions of the image that you use on your site and chooses the &quot;most optimized&quot; one (I don't really know what it does, I know it helps).</p> <h2 id="using-the-image-plugin" tabindex="-1">Using the Image plugin</h2> <p>For my use cases I just wanted to have everything be automatic, so I used the <a href="https://www.11ty.dev/docs/plugins/image/#eleventy-transform">&quot;Eleventy Transform&quot; method</a>. You add the script into your config file and it almost works right away.</p> <p>I had to add <code>outputDir: &quot;public/img/&quot;</code> to my config file, because otherwise it didn't even build locally.</p> <h2 id="netlify-starts-failing-builds" tabindex="-1">Netlify starts failing builds</h2> <p>After implementing these, Netlify started failing the builds. Everything worked fine in <code>--serve</code> mode locally, so this was surprising to me.</p> <p>The error message (in essence) was this over on Netlify's dashboard:</p> <pre class="language-powershell"><code class="language-powershell">10:25:28 PM: <span class="token punctuation">[</span>11ty<span class="token punctuation">]</span> 1<span class="token punctuation">.</span> Having trouble writing to <span class="token string">"public/blog/post-1-my-day-as-a-walrus/index.html"</span> <span class="token keyword">from</span> <span class="token string">"./src/pages/blog/post-1-my-day-as-a-walrus.md"</span> <span class="token punctuation">(</span>via EleventyTemplateError<span class="token punctuation">)</span><br>10:25:28 PM: <span class="token punctuation">[</span>11ty<span class="token punctuation">]</span> 2<span class="token punctuation">.</span> Transform `eleventy<span class="token punctuation">.</span>htmlTransformer` encountered an error when transforming <span class="token punctuation">.</span><span class="token operator">/</span>src/pages/blog/post-1-my-day-as-a-walrus<span class="token punctuation">.</span>md<span class="token punctuation">.</span> <span class="token punctuation">(</span>via EleventyTransformError<span class="token punctuation">)</span><br>10:25:28 PM: <span class="token punctuation">[</span>11ty<span class="token punctuation">]</span> 3<span class="token punctuation">.</span> ENOENT: no such file or directory<span class="token punctuation">,</span> stat <span class="token string">"src/pages/blog/\images\uploads\post-1-my-day-as-a-walrus\walrus.jpg"</span> <span class="token punctuation">(</span>via Error<span class="token punctuation">)</span></code></pre> <p>The problem piece was this: <code>&quot;src/pages/blog/\images\uploads\post-1-my-day-as-a-walrus\walrus.jpg&quot;</code>.</p> <p>Netlify's build step couldn't figure out what it was supposed to do with the <code>img</code> tag. The reason for the error were the backwards slashes \, which should have been forward slashes /.</p> <p>Once I changed all the image tags that had that, the problem was solved.</p> </content>
</entry>
<entry xml:lang="fi">
<title>Koskelantien ja Mäkelänkadun asemakaavassa on paljon toivomisen varaa</title>
<link href="https://samimaatta.fi/kirjoitukset/koskelantien-ja-makelankadun-asemakaavassa-on-paljon-toivomisen-varaa/"/>
<updated>2024-04-03T00:00:00Z</updated>
<id>https://samimaatta.fi/kirjoitukset/koskelantien-ja-makelankadun-asemakaavassa-on-paljon-toivomisen-varaa/</id>
<content type="html"><p><a href="https://kartta.hel.fi/?sukkaId=HEL%202023-015357">Aineistot</a> <a href="https://www.hel.fi/static/ksv/2023_kaava/6604_1%20_M%C3%A4kel%C3%A4nkadun%20ja%20Koskelantien%20risteys_asukastilaisuus.pdf">Asukastilaisuuden esitys</a> <a href="https://www.hel.fi/static/ksv/2023_kaava/6604_1_suunnitelmakuva.pdf">Suunnitelmakuva</a></p> <p><a href="https://www.hel.fi/static/liitteet/kaupunkiymparisto/julkaisut/julkaisut/julkaisu-28-23.pdf">Tieliikenneonnettomuudet Helsingissä 2020-2022</a> -selvityksen mukaan tämä on top 8 vaarallisimpia risteyksiä Helsingissä (20 kpl onnettomuuksia vuosina 2017-2021). On siis tosi hyvä, että risteys suunnitellaan uudelleen. Risteyksen alueella pitäisi alentaa nopeuksia onnettomuuksien välttämiseksi. Olisi hyvä selvittää, että millaisia onnettomuuksia risteyksessä on tapahtunut.</p> <p>Kerro kantasi -palvelussa on esitetty jo hyviä pointteja risteyksestä, kuten autokaistojen kaventaminen ja ajokaistojen määrän vähentäminen. Tällä tavalla risteyksestä saataisiin paljon turvallisempi ja kestäviin liikkumismuotoihin kannustavampi.</p> <p>(Suunnitelmakuva risteyksestä)</p> <p>Risteysaluetta selkeytetään. Hyvä! Liikennevalojen syklin kannattaa olla niin pitkä, että hidaskin jalankulkija pääsee mukavasti koko risteysalueen yli, eikä keskelle tarvitse jäädä odottamaan. Tällä hetkellä tilanne on surkea, koska yksillä valoilla ei ehdi mitenkään suojatien yli pohjois-eteläsuunnassa.</p> <p>(Asukastilaisuudessa esitellyn suunnitelman kuvakaappaus.)</p> <p>(Suunnitelmakuva Sofianlehdonkadun ja Vähänkyröntien risteyksestä. Risteyksen itäisellä puolella ei ola suojatietä Vähänkyröntien ylitse.)</p> <p>Sofianlehdonkadun ja Vähänkyröntien risteyksessä on vain kolme suojatietä. Myös neljäs suojatie kannattaa olla, jotta asuinalueelta pääsee helposti Vähäkyrönpuistoon. Suojateiden eteen pysäköimisen esteeksi kannattaa tehdä rakenteelliset esteet, jotta liian lähelle suojatietä ei pysäköitäisi.</p> <p>Moottoriajoneuvoliikenteen rauhoittamisen lisäksi kannattaa myös kaventaa suojateitä ja lisätä hidasteita, jotta ajoneuvot oikeasti hidastavat. Matalan liikenteen alueet eivät estä esimerkiksi pelastustoimen pääsyä alueelle. Esteiden aiheuttama hidastus kompensoituu sillä, että pelastustoimella ei ole muuta ylimääräistä liikennettä esteenä.</p> <p>(Suunnitelmakuva Vähänkyröntien ja Mäkelänkadun risteyksestä. Suojatie on risteyksen eteläpuolella.)</p> <p>Vähänkyröntien ja Mäkelänkadun risteys on merkittävä reitti Käpylän liikuntapuistoon. Se tulee olemaan kätevä uuden asuinalueen asukkaille. Nykyinen suojatie kannattaisi siirtää risteyksen pohjoispuolelle, jotta idästä Vähänkyröntieltä saapuvat eivät joudu ylittämään kahta suojatietä päästäkseen liikuntapuistoon. Suojatielle tulisi lisätä liikennevalot, koska Mäkelänkadun nopeusrajoitus on niin korkea.</p> <p>Samasta syystä voisi myös kaventaa Vähäkyröntien ja Mäkelänkadun risteyksen itäpuolen suojatietä, jotta autot hidastavat kunnolla jo sinne kääntyessään. Suojatie kannattaa myös korottaa. Tämä samalla viestii varovaisuudesta kadulla, jolla olisi vähemmän liikennettä.</p> <p>Esityksessä oli autoliikennemääriä, mutta ei kävely- tai pyöräilymääriä. Ne voisivat myös auttaa suunnittelussa, joten sellaisia mittauksia kannattaa tehdä. Erityisesti kannattaa kiinnittää huomiota siihen, ketkä ovat jalankulkijoina risteyksissä: lapset, aikuiset ja ikääntyneet.</p> <p>(Kuva Google Maps -palvelusta. Tursontien ja Koskelantien risteyksessä on korotettu suojatie.)</p> <p>Ennen suojatietä kannattaa lisätä rakenteelliset esteet, jotta autoja ei pysäköitäisi suojatien eteen vaarallisesti.</p> <p>(Samoin kannattaisi tehdä Vipusentien ja Koskelantien risteyksessä, jotta hyvä näkyvyys säilyy.)</p> <p>Kalervonkadun ja Koskelantien risteys pitäisi myös suunnitella turvallisemmaksi, koska Kalervonkadulla on myös Käpylän peruskoulun rakennus, Untamo (Kalervonkatu 5, kuvassa jatketaan vasemmalle). Se on nyt perusparannuskorjauksessa, kuten on myös toinen koulurakennus Väinölä (Väinölänkatu 7). Suojatie kannattaa korottaa risteysalueella ja ajonopeuksia laskea reilusti ennen risteystä.</p> <p>Jalkakäytävien ja pyöräteiden suunnittelussa tulee huomioida, että ne ovat tarpeeksi leveitä talvikunnossapidon mahdollistamiseksi. Lisää tilaa kannattaa ottaa ajokaistoista, jos tieleveys ei riitä.</p> <p>(Suunnitelmakuva Vähänkyröntie 4:stä. Vähäkyrönpuistoon ei ole suojatietä kadun yli, vaikka puiston katu päättyy ajoradalle.)</p> <p>Vähänkyröntie 4:stä ei ole selkeää reittiä Vähänkyrönpuistoon, mutta Google Mapsin katukuvaa katsoessa huomaa, että sieltä kuitenkin kuljetaan paljon puistoon.</p> <p>(Kuva Vähänkyröntie 4:n kohdalta. Vasemmalla Vähänkyröntie 4:lle (kerrostalo) vievä tie ja oikealla polku, joka on tallaantunut, kun siitä kuljetaan puistoon. Kuva on vuodelta 2022.)</p> <p>Siihen kohtaan olisi hyvä tehdä suojatie, jotta puistoon pääseminen olisi helpompaa. Sen kannattaa olla korotettu, koska tiellä aiotaan vähentää moottoriajoneuvoliikennettä. Suojatie tulisi keskelle tietä, joten sen kummallekin puolelle kannattaa tehdä pysäköintiä estävät rakenteelliset esteet ennen suojatietä. Muuten katu voi olla vaarallinen ylitäjälle.</p> </content>
</entry>
<entry xml:lang="fi">
<title>Mitä on populismi?</title>
<link href="https://samimaatta.fi/kirjoitukset/mita-on-populismi/"/>
<updated>2024-03-18T00:00:00Z</updated>
<id>https://samimaatta.fi/kirjoitukset/mita-on-populismi/</id>
<content type="html"><p><a href="https://netn.fi/fi/kirjat/populismi">Kirjan nimi &quot;Mitä on populismi?&quot; (niin ja näin)</a> esittää jo sen olennaisen kysymyksen. Kirjan on kirjoittanut Jan-Werner Müller. Sen on kääntänyt suomeksi Tapani Kilpeläinen. Nappasin sen mukaan Educa-messuilta!</p> <h2 id="koulussa-opittua" tabindex="-1">Koulussa opittua</h2> <p>Muistan yhteiskuntaopin tunnilta, että opettajani kertoi populismin olevan &quot;yksinkertaisia ratkaisuja monimutkaisiin ongelmiin&quot; ja käytännössä sumutusta. Sen avulla halutaan antaa ymmärtää, että haasteemme ovat yksinkertaisempia kuin ovatkaan ja niiden korjaaminen on helppoa.</p> <p>Käytännössä nämä keinot osoittautuvat ontoiksi ja tehottomiksi.</p> <h2 id="monisyisempi-juttu" tabindex="-1">Monisyisempi juttu</h2> <p>Kirjassa esitellään monia populismin eri puolia ja se nousee entistä ikävämpään valoon. Päällimmäisenä mieleeni ovat jääneet seuraavat pointit.</p> <h3 id="populisti-on-kansan-asialla" tabindex="-1">Populisti on &quot;kansan&quot; asialla</h3> <p>Populisti ajattelee puhuvansa koko kansan puolesta. Populisti antaa ymmärtää, että on olemassa vain yksi kansa, jota hän edustaa. Jos et ole samaa mieltä populistin kanssa, niin olet automaattisesti myös eri mieltä kansan kanssa.</p> <p>Tärkeä asia huomata, että ei ole olemassa yhtä yhtenäistä kansaa. Samassakin joukossa olevat ihmiset ajattelevat osasta asioista samoin ja osasta eri tavoin. On haitallista väittää, että puhuisi ikään kuin koko kansan äänellä.</p> <p>Silloinkin, kun populisti ei näe gallupeissa omien tavoitteidensa menestyvän, hän voi viitata siihen, että hiljainen enemmistö ei vain tullut paikalle.</p> <h3 id="populisti-vaantaa-insituutiot-toimimaan-hanen-edukseen" tabindex="-1">Populisti vääntää insituutiot toimimaan hänen edukseen</h3> <p>Populisti vastustaa instituutioita ja järjestelmiä niin kauan kuin ne jotenkin haittaavat populistin etenmistä tai tavoitteiden saavuttamista. Kun valtaan on päästy, niin populisti pyrkii vaikuttamaan instituutioihin ja muuttamaan niitä tavoilla, jotta ne lopulta pelaavat populistin pussiin.</p> <p>Populistiseen hallintoon kuuluu olennaisena osana &quot;kansalaisyhteiskunnan tukahduttaminen&quot; ja jopa perustuslakiin kajoaminen. Populisti tosissaan uskoo olevansa yhtenäisen kansan edustaja ja täten perustuslainkin pitää heijastaa populistin uskomuksia kansasta ja sen tahdosta.</p> <h3 id="populisti-vastustaa-eliittia-niin-kauan-kuin-han-on-itse-sita-vastassa" tabindex="-1">Populisti vastustaa eliittiä niin kauan kuin hän on itse sitä vastassa</h3> <p>Valtaapitäviä voidaan pitää yhteiskunnan eliittinä ja populisti julistaa, miten he ovat etääntyneet kansasta. Populistin päästessä valtaan, myös kansa pääsee aidosti valtaan. Valtaan päästessään populistista kuitenkin tulee eliittiä. Hän silti ikään kuin puhuu kansan puolesta tai antaa ymmärtää olevan 'oikeanlaista eliittiä' kansan hyväksi.</p> <h3 id="kuka-vain-voi-toimia-populistisesti" tabindex="-1">Kuka vain voi toimia populistisesti</h3> <p>Mitä vielä jäi käteen: Politiikassa voi olla vaikea välttyä siltä, että puhuisi ikään kuin suomalaisten suulla. Olennaisena erona aitoon populistiin edustajan tulee ymmärtää, että kansa on moniarvoinen ja -tahoinen. Terveessä järjestelmässä tätä kansaa edustaa monitahoinen puoluejärjestelmä, kansalaisyhteiskunnan toimijat ja itse kansalaiset.</p> <h2 id="todella-pieni-osa-suomalaisista-kuuluu-puolueeseen" tabindex="-1">Todella pieni osa suomalaisista kuuluu puolueeseen</h2> <p>Moniarvoisessa puoluejärjestelmässä olisi tärkeää, että yhä useampi kuuluisi puolueeseen - ja minusta vielä tärkeämpää, että kuuluttaisiin eri puolueisiin. <a href="https://fi.wikipedia.org/wiki/Luettelo_Suomen_puolueista">Wikipedian luettelossa Suomen puolueista</a> näkee taulukointia puolueiden jäsenmääristä:</p> <ul> <li>Keskusta: 77 000 (2021)</li> <li>SDP: 29 600 (2021)</li> <li>Kokoomus: 27 000 (2021)</li> <li>RKP: 22 365 (2020)</li> <li>KD: 8 400 (2020)</li> <li>Vasemmistoliitto: 12 000 (2020)</li> <li>Suomen kommunistinen puolue: 2 500 (2017)</li> <li>Vihreät: 7 800 (2021)</li> <li>Perussuomalaiset: 15 700 (2021)</li> </ul> <p>Yhteensä siis 202 365 jäsentä (eri vuosien tietoja yhdistämällä). <a href="https://dvv.fi/henkiloasiakkaat">Digi- ja väestötietoviraston etusivun mukaan (noudettu 18.3.2024)</a> Suomessa on 5,6 miljoonaa kansalaista, niin tämä tekee noin 3,6 prosenttia.</p> <h2 id="laajenna-puoluekenttaa-tai-liity-puolueeseen" tabindex="-1">Laajenna puoluekenttää tai liity puolueeseen</h2> <p>Käytännössä Suomen tämänhetkinen puoluekenttä koostuu vain 3,6 prosentista suomalaisia. Näistä 3,6 prosentista valitaan 200 kansanedustajaa, jotka edustavat koko Suomea. Puoluekenttä voisi siis olla laajempi. Jos uuden puolueen perustaminen ei nappaa, niin tätä edeltävä hyvä askel voisi olla puolueeseen liittyminen!</p> </content>
</entry>
<entry xml:lang="fi">
<title>Saavutettavat matemaattiset kaavat</title>
<link href="https://samimaatta.fi/kirjoitukset/saavutettavat-matemaattiset-kaavat/"/>
<updated>2024-03-11T00:00:00Z</updated>
<id>https://samimaatta.fi/kirjoitukset/saavutettavat-matemaattiset-kaavat/</id>
<content type="html"><p>Tämä sivu korvaa aiemman kirjoitukseni matemaattisen sisällön tuottamisesta saavutettavasti: <a href="/matematiikka-verkossa-ja-sahkokirjoissa/">Matematiikka verkossa ja sähkökirjoissa</a>.</p> <p>Tällä sivulla ei ole tutustuttu tarkemmin erilaisiin lukuohjelmiin, jotka tukevat MathML-koodia, joten siltä osin edellistäkin kirjoitusta voi vielä lukea.</p> <h2 id="esitietovaatimukset" tabindex="-1">Esitietovaatimukset</h2> <ul> <li>Ymmärrät HTML- ja LaTeX-kielten käyttöä.</li> <li>Olet valmis oppimaan MathML-koodia.</li> <li>Osaat käyttää ulkoisia paketteja web-kehityksessä.</li> </ul> <h2 id="tiiviisti" tabindex="-1">Tiiviisti</h2> <ul> <li>Käytä matemaattisen sisällön esittämiseen MathML-koodia. <ul> <li>Kaaviot tai muut graafiset esitykset eivät kuulu MathML-koodin piiriin.</li> </ul> </li> <li>Vaihtoehtoisesti käytä MathML-koodia ja SVG-kuvaa kaavasta.</li> <li>MathML-koodia ei kannata kirjoittaa käsin. Käytä siihen <a href="#keinoja-tuottaa-matemaattisia-kaavoja-math-ml-koodilla">muunnosohjelmia</a>.</li> <li>Tutustu <a href="https://www.w3.org/TR/MathML3/">MathML-standardiin (englanniksi)</a>.</li> <li>Huomioi näkymättömät merkit, joita LaTeX-koodi tai kaavaeditorit eivät käytä <ul> <li>näkymätön &quot;kertaa&quot; -merkki <code>&amp;#8290;</code> tai <code>&amp;InvisibleTimes;</code></li> <li>näkymätön &quot;funktion arvolla&quot; -merkki <code>&amp;#8289;</code> tai <code>&amp;ApplyFunction;</code>.</li> </ul> </li> </ul> <h2 id="math-cat-ohjelmisto" tabindex="-1">MathCAT-ohjelmisto</h2> <p><a href="https://nsoiffer.github.io/MathCAT/">MathCAT (englanniksi)</a> on amerikkalaisen Neil Soifferin kehittämä NVDA-ruudunlukijalisäosa. Se on avointa lähdekoodia ja sitä edelleen kehitetään.</p> <p>Se mahdollistaa MathML-koodilla kirjoitettujen matemaattisten kaavojen kuuntelun ja lukemisen pistekirjoituksella pistenäytöltä - mutta tällä hetkellä vain englanniksi.</p> <h3 id="kaantaminen-suomeksi-ja-ruotsiksi" tabindex="-1">Kääntäminen suomeksi ja ruotsiksi</h3> <p>Saavutettavuuskirjasto Celiassa on käynnissä projekti, jossa lisäosaa käännetään suomeksi ja vastaava virasto kääntää lisäosaa Ruotsissa ruotsiksi.</p> <p>Lisäosaa voi jo testata suomenkielisenä, jos haluaa. Ota yhteyttä Sami Määttään, <a href="mailto:sami.maatta@celia.f">sami.maatta@celia.fi</a>, jos haluat kokeilla lisäosaa.</p> <p>Tavoitteena on, että vuoden 2024 aikana suomen- ja ruotsinkielinen tuki kuuntelulle ja pistekirjoitukselle olisi valmis ja osa MathCAT-ohjelmistoa.</p> <h2 id="miksi-math-ml-koodia-kannattaa-kayttaa" tabindex="-1">Miksi MathML-koodia kannattaa käyttää?</h2> <p><a href="https://www.w3.org/TR/MathML3/">MathML</a> on standardi, jota kehitetään ja ylläpidetään W3C:n toimesta. Sitä voidaan siis pitää vakaana standardina.</p> <p>Se on samankaltainen kuin HTML-standardi, jota W3C myös ylläpitää. Voi siis ajatella, että ne sopivat hyvin yhteen.</p> <p>Näiden syiden vuoksi tulevaisuudessa on erittäin todennäköistä, että MathML-koodissa pitäydytään jatkossakin.</p> <h3 id="selainten-tuki-on-parantunut" tabindex="-1">Selainten tuki on parantunut</h3> <p>Sen tuki on myös parantunut. Vuoden 2023 alusta Chromium-pohjaiset selaimet (Google Chrome, Windows Edge) alkoivat tukea sitä. Olemassa oleva tuki on ollut jo Webkit-pohjaisissa (Safari) ja Gecko-pohjaisissa selaimissa (Firefox).</p> <p>Tuen parantuminen tarkoittaa ensisijaisesti, että MathML tuottaa visuaalisesti oikeannäköistä matemaattista sisältöä. Tästä huolimatta Chromium-pohjaisilla selaimilla on edelleen joitain vaikeuksia näyttää kaikkia epätavallisempia merkintöjä oikein.</p> <p>Tämän paikkaamiseen palataan lopussa.</p> <h2 id="keinoja-tuottaa-matemaattisia-kaavoja-math-ml-koodilla" tabindex="-1">Keinoja tuottaa matemaattisia kaavoja MathML-koodilla</h2> <p>MathML-koodi voi mennä helposti monimutkaiseksi ja hankalaksi ymmärtää, eikä sitä ole suunniteltu ihmisen kirjoitettavaksi. Se on toki mahdollista, mutta suositeltavampaa on käyttää muunnostyökaluja, ja kirjoittaa tavalla, joka on helpompi.</p> <h3 id="la-te-x-koodin-ja-math-ml-koodin-vertailu" tabindex="-1">LaTeX-koodin ja MathML-koodin vertailu</h3> <p>Otetaan esimerkiksi lauseke <span class="sr-only">1 /sqrt(2)</span><math display="block"> <mfrac> <mn>1</mn> <msqrt> <mn>2</mn> </msqrt> </mfrac>. </math></p> <p>Tältä näyttää se kirjoitettuna LaTeX-koodilla:</p> <pre class="language-html"><code class="language-html">\frac{1}{\sqrt{2}}</code></pre> <p>Vastaavasti MathML-koodina:</p> <pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>math</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mfrac</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mn</span><span class="token punctuation">></span></span>1<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mn</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>msqrt</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mn</span><span class="token punctuation">></span></span>2<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mn</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>msqrt</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mfrac</span><span class="token punctuation">></span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>math</span><span class="token punctuation">></span></span></code></pre> <p>Näinkin pienessä esimerkissä jo huomataan MathML-koodin runsasmerkkisyys ja sisäkkäisyys. Se voi olla ihmiselle vaikealukuista, mutta koneelle helppoa.</p> <p>Huomaa, että kuten HTML-koodissakin, niin myös MathML-koodissa tulee kiinnittää huomiota siihen, että osaa käyttää oikeita elementtejä. Muunnostyökalujen haasteet liittyvät siihen, että niissä kaikissa on hieman väreilyä sen suhteen, millaista MathML-koodia ne tuottavat. Siksi MathML-koodia kannattaa myös oikolukea sen jälkeen, kun muunnos on tehty.</p> <p>Ne kuitenkin soveltuvat kaavojen muuttamiseen MathML-koodiksi massana.</p> <p>Seuraavaksi esittelin keinoja, joilla voit kirjoittaa LaTeX-koodia tai sitten käyttää kaavaeditoria MathML-koodin tuottamiseen.</p> <h3 id="la-te-xml-kokonaiset-la-te-x-dokumentit" tabindex="-1">LaTeXML: kokonaiset LaTeX-dokumentit</h3> <p><a href="https://math.nist.gov/~BMiller/LaTeXML/">LaTeXML (englanniksi)</a>: kokonaisten LaTeX-tiedostojen muuttamiseen HTML-tiedostoiksi.</p> <p>Tätä en ole itse testannut, mutta esijulkaisuja jakava <a href="https://arxiv.org/">ArXiv (englanniksi)</a> käyttää sitä matemaattisten julkaisujen muuttamiseen HTML-tiedostoiksi. Heillä on myös ohje siitä, miten kirjoittaa hyvää LaTeX-koodia, että muunnos onnistuisi hyvin: <span lang="en"><a href="https://info.arxiv.org/help/submit_latex_best_practices.html">LaTeX Markup Best Practices for Successful HTML Papers (arxiv.org)</a></span>.</p> <h3 id="te-x-zilla-la-te-x-koodi-html-tiedostossa" tabindex="-1">TeXZilla: LaTeX-koodi HTML-tiedostossa</h3> <p><a href="https://github.com/fred-wang/TeXZilla">TeXZilla (GitHub, englanniksi)</a>: HTML-tiedostossa olevien LaTeX-kaavojen muuttamiseksi MathML-koodiksi.</p> <p>Tekemäni ohje sen käyttämiseksi: <a href="/kirjoitukset/la-te-x-koodin-korvaaminen-math-ml-koodilla-html-tiedostossa/">LaTeX-koodin korvaaminen MathML-koodilla HTML-tiedostossa</a>.</p> <h3 id="math-jax-la-te-x-koodi-html-tiedostossa" tabindex="-1">MathJax: LaTeX-koodi HTML-tiedostossa</h3> <p><a href="https://www.mathjax.org/">MathJax (englanniksi)</a>: HTML-tiedostossa olevien LaTeX-kaavojen muuttamiseksi MathML-koodiksi.</p> <p>MathJaxin avulla LaTeX-koodista voi tuottaa MathML-koodia tai SVG-kuvan. Tähän asti se on ollut myös hyvä keino tuottaa saavutettavia matemaattisia kaavoja englanniksi, koska siinä on ollut sisäänrakennettu tekstin tuotto kaavalle.</p> <p>Muun muassa Ylioppilastutkintolautakunta käyttää tätä omassa koeympäristössään, Abitissa.</p> <h3 id="ka-te-x-la-te-x-koodi-html-tiedostossa" tabindex="-1">KaTeX: LaTeX-koodi HTML-tiedostossa</h3> <p><a href="https://katex.org/">KaTeX (enlanniksi)</a>: HTML-tiedostossa olevien LaTeX-kaavojen muuttamiseksi MathML-koodiksi. Se toimii pitkälti, kuten MathJax. Sivuston mukaan se olisi kuitenkin nopeampi.</p> <h3 id="temml-la-te-x-koodi-html-tiedostossa" tabindex="-1">TEMML: LaTeX-koodi HTML-tiedostossa</h3> <p><a href="https://temml.org/">TEMML (englanniksi)</a> on JavaScriptillä kirjoitettu muunnostyökalu, joka toimii selaimessa. Käytän itse sitä nopeiden kaavojen kirjoittamiseen.</p> <p>Sen voi myös asentaa lokaalisti ja oletan, että käyttö muistuttaa TeXZillaa ja MathJaxia.</p> <h3 id="math-type-kaavaeditorin-kaytto" tabindex="-1">MathType: kaavaeditorin käyttö</h3> <p><a href="https://www.wiris.com/en/mathtype/">MathType (Wiris, englanniksi)</a>: Microsoft Office Wordin kaavaeditorin, jonka vaihtoehtoisest kuvauksesta voi kopioida MathML-koodin.</p> <h2 id="mita-muunnostyokalut-eivat-tee" tabindex="-1">Mitä muunnostyökalut eivät tee</h2> <p>LaTeX-koodiin perustuvat muunnostyökalut eivät voi lisätä sellaisia merkkejä kaavaan, joita ei ole itse koodissakaan. Koska LaTeX-koodi kehitettiin ensisijaisesti tekemään hyvältä näyttäviä dokumentteja, se ei sisällä kaikkea semantiikkaa, mikä on mahdollista tehdä MathML-koodissa.</p> <h3 id="nakymaton-kerto-ja-funktion-arvolla-merkki" tabindex="-1">Näkymätön kerto- ja &quot;funktion arvolla&quot; -merkki</h3> <p>Miten tiedetään, että tämä lauseke tarkoittaa funktiota <span class="sr-only">f(x)</span> <math> <mrow> <mi>f</mi> <mo>⁡</mo> <mo form="prefix" stretchy="false">(</mo> <mi>x</mi> <mo form="postfix" stretchy="false">)</mo> </mrow> </math>? Entä mistä tiedetään, että tämä lauseke tarkoittaa kertolaskua <span class="sr-only">2 x</span><math> <mrow> <mn>2</mn> <mo>⁢</mo> <mi>x</mi> </mrow> </math>?</p> <p>Sen toki tietää konktekstista, mutta MathML tarjoaa tähän vielä toisen keinon. MathML-koodin (kuten HTML-koodin) sekaan voi kirjoittaa Unicode-merkkejä, esimerkiksi erilaiset hymiöt ovat tällaisia.</p> <p>Funktion lauseke on kooditasolla näin:</p> <pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>math</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mrow</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mi</span><span class="token punctuation">></span></span>f<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mi</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mo</span><span class="token punctuation">></span></span>&amp;ApplyFunction;<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mo</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mo</span> <span class="token attr-name">form</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>prefix<span class="token punctuation">"</span></span> <span class="token attr-name">stretchy</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>false<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>(<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mo</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mi</span><span class="token punctuation">></span></span>x<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mi</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mo</span> <span class="token attr-name">form</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>postfix<span class="token punctuation">"</span></span> <span class="token attr-name">stretchy</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>false<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>)<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mo</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mrow</span><span class="token punctuation">></span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>math</span><span class="token punctuation">></span></span></code></pre> <p>Kertolaskulauseke on kooditasolla vastaavasti näin:</p> <pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>math</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mrow</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mn</span><span class="token punctuation">></span></span>2<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mn</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mo</span><span class="token punctuation">></span></span>&amp;InvisibleTimes;<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mo</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mi</span><span class="token punctuation">></span></span>x<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mi</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mrow</span><span class="token punctuation">></span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>math</span><span class="token punctuation">></span></span></code></pre> <p>Koska pelkästään lukemalla lausekkeen ei voi tietää, onko kyseessä funktio vai kertolasku, niin Unicode tarjoa tähän kaksi näkymätöntä merkkiä:</p> <ul> <li>näkymätön &quot;kertaa&quot; -merkki <code>&amp;#8290;</code> tai <code>&amp;InvisibleTimes;</code></li> <li>näkymätön &quot;funktion arvolla&quot; -merkki <code>&amp;#8289;</code> tai <code>&amp;ApplyFunction;</code>.</li> </ul> <p>Tällä tavoin MathML-koodin avulla voi myös ilmaista semantiikkaa. Tämä ei tule ilmi LaTeX-koodissa, koska se tuottaa tekstiä, joka on tarkoitus tulkita kontekstissa.</p> <h2 id="miten-matemaattinen-sisalto-kannattaisi-siis-esittaa" tabindex="-1">Miten matemaattinen sisältö kannattaisi siis esittää?</h2> <p>Kaksi suositeltavaa vaihtoehtoa, jotka perustuvat LaTeX-koodin automaattimuunnokseen:</p> <ol> <li>pelkkä MathML-koodi</li> <li>MathML-koodi ja SVG-kuva.</li> </ol> <p>Kummassakaan tapauksessa ei kuitenkaan välty siltä, että MathML-koodi pitäisi vielä oikolukea ja mahdollisesti täydentää näkymättömillä merkeillä.</p> <h3 id="pelkka-math-ml-koodi" tabindex="-1">Pelkkä MathML-koodi</h3> <p>Mainitsin, että selaimet tukevat nykyään jo paremmin MathML-koodia, mutta joitain puutteita on. Puutteita on kokemukseni mukaan kuitenkin niin vähän, että pelkän MathML-koodin käyttäminen onnistuu ihan hyvin. Selain ratkaisee itse, miten kaava näytetään.</p> <p>Tämä onnistuu helposti muunnostyökaluilla.</p> <h3 id="math-ml-koodi-ja-svg-kuva" tabindex="-1">MathML-koodi ja SVG-kuva</h3> <p>Koska selainten tuki kuitenkin vaihtelee, niin ollaksesi täysin varma siitä, että kaava näyttää juuri oikealta, niin käytä yhdistelmää: MathML-koodi ja SVG-kuva matemaattisesta kaavasta.</p> <p>Olennaista tässä ratkaisussa on sen <strong>saavutettavuus</strong>. SVG-kuva ei auta sokeaa ruudunlukijakäyttäjää ja MathML-koodi voi näyttäää eriltä kuin SVG-kuvan matemaattinen kaava. Toimi siis näin</p> <ul> <li>piilota MathML-koodi näkyvistä tyylitiedoston avulla</li> <li>piilota SVG-kuva ruudunlukijalta attribuutilla <code>aria-hidden=&quot;true&quot;</code>.</li> </ul> <p>Tässä ratkaisussa kannattaa hoksata se, että kaavakuva ei katkea ylipitkän rivin seurauksena. Silloin täytyy huolehtia siitä, että sitä voi rullata sivuttain, jotta koko kaavan näkee pienellä ruudulla.</p> </content>
</entry>
<entry xml:lang="fi">
<title>Kävelykatu-ilmiö</title>
<link href="https://samimaatta.fi/kirjoitukset/kavelykatu-ilmio/"/>
<updated>2024-03-07T00:00:00Z</updated>
<id>https://samimaatta.fi/kirjoitukset/kavelykatu-ilmio/</id>
<content type="html"><p>Vierailemalla Iso Roobertinkadulla huomaa nopeasti, että &quot;kävelykatu&quot; ei tarkoita juuri mitään. Eräänäkin iltana sen varrelle ja keskelle oli pysäköity autoja. Esimerkki siitä, miten toissijaisena jalankulkua pidetään: katu, jonka pitäisi olla kävelyä varten, ei edes ole sitä.</p> <p>Kiinnostuin kuitenkin selvittämään, että mitä laki itse asiassa sanoo kävelykadusta. Se vei minut syville vesille vanhaan lakiin ja asiantuntijalausuntoihin.</p> <h2 id="sukellus-lakipykaliin" tabindex="-1">Sukellus lakipykäliin</h2> <p><a href="https://www.finlex.fi/fi/laki/ajantasa/2018/20180729#a729-2018">Tieliikennelaissa kävelykadusta</a> lukee:</p> <blockquote class="flow"> <p>44 § Kävelykadulla ajaminen, pysäyttäminen ja pysäköinti</p> <p>Ajoneuvolla kävelykadulla ajettaessa on jalankulkijoille annettava esteetön kulku.</p> <p>Moottorikäyttöisen ajoneuvon saa kävelykadulla ajaa vain kävelykadun varrella olevalle kiinteistölle, jos kiinteistölle ei ole muuta ajokelpoista yhteyttä. Kävelykadun ylittäminen on kuitenkin sallittu. Myös huoltoajo kävelykadulla on sallittu, jos liikennemerkillä niin osoitetaan.</p> <p>Ajonopeus on sovitettava kävelykadulla jalankulun mukaiseksi, eikä se saa ylittää 20 kilometriä tunnissa.</p> <p>Moottorikäyttöistä ajoneuvoa tai sen perävaunua ei saa pysäyttää eikä pysäköidä kävelykadulla. Pysäyttäminen on kuitenkin sallittu pakollisen liikenne-esteen, väistämisvelvollisuuden noudattamisen tai hätätilanteen vuoksi.</p> <p>Jos huoltoajo on kävelykadulla liikennemerkillä sallittu, ajoneuvon saa pysäyttää huoltoajon vaatimaksi ajaksi.</p> </blockquote> <p>Erityisen hämmentävä on kohta &quot;Moottorikäyttöisen ajoneuvon saa kävelykadulla ajaa vain kävelykadun varrella olevalle kiinteistölle, jos kiinteistölle ei ole muuta ajokelpoista yhteyttä.&quot; Mitä tämä tarkoittaa?</p> <p>Olen monesti nähnyt pysäköidyn auton kiinteistön (baarin, ravintolan tai vastaavan) edessä. Olen olettanut, että tämä on varmaan kiinteistön omistajan auto. Nyt halusin selvittää, että saako hän lain puitteissa pysäköidä autonsa kävelykadulle, koska ei pääse kiinteistölleen muutoin? Muutenhan siihen puututtaisiin... Niinhän?</p> <p>Lakiteksti ei ole kovin selkeä tässä tapauksessa, mutta hallituksen esityksestä voisi olla apua. Lainsäädännössä hallituksen esitys edeltää lakia ja yleensä esityksessä perustellaan lainsäädännön pykäliä. Käsittääkseni hallituksen esityksistä haetaan apua tulkintakysymyksissä.</p> <h2 id="mita-hallituksen-esityksessa-sanotaan-kavelykadusta" tabindex="-1">Mitä hallituksen esityksessä sanotaan kävelykadusta?</h2> <p><a href="https://www.finlex.fi/fi/laki/ajantasa/2018/20180729">Tieliikennelakia</a> uudistettiin vuonna 2018, eikä sen hallituksen esityksessä perusteltu kävelykatua koskevaa lainsäädäntöä mitenkään. Kävelykatu tuli ensimmäistä kertaa lakiin vuonna 2006, mutta vanhempaan <a href="https://www.finlex.fi/fi/laki/ajantasa/kumotut/1981/19810267">tieliikennelakiin (1981)</a>. Tästä vuoden 2006 muutoksesta tehtiin hallituksen esitys, jossa kiinteistölle ajamisesta todetaan näin:</p> <blockquote> <p>Kiinteistölle ajaminen tarkoittaisi esimerkiksi kiinteistön pihaan tai autotalliin ajamista, siis kadulta poisajamista.</p> </blockquote> <p>&quot;Kiinteistölle ajo&quot; ei siis missään nimessä tarkoita auton pysäköimistä kävelykadulle, eikä pysäyttämistä tai pysäköintiä sallita kiinteistön edustalle muussa tapauksessa. Eli on aivan perusteltua (lainkin näkökulmasta) olla närkästynyt!</p> <p>Selvittäessäni tätä asiaa en voinut vastustaa lakien tarkempaa tutkimista.</p> <h2 id="uuden-ja-vanhan-lain-vertailu" tabindex="-1">Uuden ja vanhan lain vertailu</h2> <p>Kävelykatua koskevaa lainsäädäntöä oli muutettu tieliikennelakien välissä.</p> <p>Millä tavoin kävelykadusta oli säädetty vuonna 2006? Millaisia muutoksia uuteen lakiin tuli vuonna 2018?</p> <p><a href="https://www.finlex.fi/fi/laki/ajantasa/kumotut/1981/19810267#P33aM1">Vanha laki (2006)</a>:</p> <blockquote class="flow"> <p>33 a § Kävelykadulla ajaminen</p> <p>Kävelykadulla polkupyöräily on sallittu. Moottorikäyttöistä ajoneuvoa saa kuljettaa vain kadun varrella olevalle kiinteistölle, jollei kiinteistölle ole muuta kautta järjestetty ajokelpoista yhteyttä.</p> <p> Moottorikäyttöisen ajoneuvon pysäköinti ja pysäyttäminen kävelykadulla on kielletty, lukuun ottamatta huoltoajoon liittyvää pysäyttämistä silloin, kun huoltoajo on liikennemerkin mukaan sallittu.</p> <p></p><p>Ajonopeus kävelykadulla on sovitettava jalankulun mukaiseksi eikä se saa ylittää 20 km/h.</p><p></p> <p>Kävelykadulla ajoneuvon kuljettajan on annettava jalankulkijalle esteetön kulku.</p> </blockquote> <p><a href="https://www.finlex.fi/fi/laki/ajantasa/2018/20180729#a729-2018">Uusi laki (2018)</a>:</p> <blockquote class="flow"> <p>44 § Kävelykadulla ajaminen, pysäyttäminen ja pysäköinti </p><p> Ajoneuvolla kävelykadulla ajettaessa on jalankulkijoille annettava esteetön kulku. </p> <p>Moottorikäyttöisen ajoneuvon saa kävelykadulla ajaa vain kävelykadun varrella olevalle kiinteistölle, jos kiinteistölle ei ole muuta ajokelpoista yhteyttä. Kävelykadun ylittäminen on kuitenkin sallittu. Myös huoltoajo kävelykadulla on sallittu, jos liikennemerkillä niin osoitetaan. </p> <p> Ajonopeus on sovitettava kävelykadulla jalankulun mukaiseksi, eikä se saa ylittää 20 kilometriä tunnissa. </p> <p>Moottorikäyttöistä ajoneuvoa tai sen perävaunua ei saa pysäyttää eikä pysäköidä kävelykadulla. Pysäyttäminen on kuitenkin sallittu pakollisen liikenne-esteen, väistämisvelvollisuuden noudattamisen tai hätätilanteen vuoksi.</p> <p>Jos huoltoajo on kävelykadulla liikennemerkillä sallittu, ajoneuvon saa pysäyttää huoltoajon vaatimaksi ajaksi.</p> </blockquote> <p>Siis kävelykadun lainsäädäntöä heikennettiin uuteen lakiin! Sinne lisättiin jalkakäytävälle pysäköimistä ja pysäyttämistä koskeva &quot;pakollinen liikenne-este&quot;, joka kokemuksien mukaan tarkoittaa miltei mitä tahansa syytä, jonka autoa käyttävä keksii.</p> <p>Kävelykatu on harvoja lainsäädännössä olevia keinoja osoittaa alueita pelkästään jalankulkijoiden käyttöön, mutta siinäkään suhteessa tämä laki ei aja asiaansa.</p> <p>Kävelykatua koskevaa lainsäädäntöä heikennettiin, joten luonnollisesti kiinnostuin siitä, että miten sitä oli perusteltu hallituksen esityksessä. Vastaus oli, että ei mitenkään. Heikennys oli kirjattu esitykseen heti alussa.</p> <h2 id="kuka-ajoi-jalankulkijoiden-etua" tabindex="-1">Kuka ajoi jalankulkijoiden etua?</h2> <p>Hallituksen esityksistä voi tehdä lausuntoja, kun esitys laista tulee saataville. Kiinnostuin siitä, että mitä lausunnonantajat ovat sanoneet heikennyksestä. Lausuntoja oli 133 kappaletta, joista osa on valmistelevan ministeriön kommentteja, lausunnonantajien asiakirjoja ja diaesityksiä, mutta erilaisia lausuntoja oli ainakin yli 60 kappaletta.</p> <p>Luin kaikki. Yhdessäkään ei puututtu kävelykatua koskevan lainsäädännön heikentämiseen.</p> <p>Mutta miksipä olisikaan?</p> <p>Yksikään taho ei nimenomaisesti keskittynyt jalankulkijan edunvalvontaan. Lausuntoja annettiin liikenneturvallisuuden ja pyöräilijöiden näkökulmista, koska heitä edustavia tahoja on olemassa ja ne ovat aktiivisia. Näille yhdistyksille kunnia siitä, mikä jäi niin monelta huomaamatta: jalankulun merkitys.</p> <h2 id="edes-lainsaadanto-ei-luo-edellytyksia-hyvalle-kavely-ymparistolle" tabindex="-1">Edes lainsäädäntö ei luo edellytyksiä hyvälle kävely-ympäristölle</h2> <p>Kaiken kaikkiaan kävelykatua koskevan lainsäädännön heikentäminen viestii kahta asiaa: jalankulku on toissijainen kulkumuoto, eikä se voi olla prioriteetti kaupunki- tai tiesuunnittelussa.</p> <p>Lainsäädäntö, jonka on tarkoitus koskea pääasiassa kävelyä ja mahdollistaa hyvä kävely-ympäristö edellyttää silti kadun rakentamista siten, että sillä voi liikkua esteettömästi autolla.</p> <p>Niin kauan kuin autoille annetaan erityisoikeuksia liikkua jalankulkijan tilassa jo näin ylimalkaisesti lainsäädännön tasolla, se ei voi ohjata kaupunkia suunnittelemaan parempaa kävely-ympäristöä.</p> </content>
</entry>
<entry xml:lang="fi">
<title>WebAIMin ruudunlukijakysely numero 10</title>
<link href="https://samimaatta.fi/kirjoitukset/web-ai-min-ruudunlukijakysely-numero-10/"/>
<updated>2024-03-04T00:00:00Z</updated>
<id>https://samimaatta.fi/kirjoitukset/web-ai-min-ruudunlukijakysely-numero-10/</id>
<content type="html"><p>Hyppään tietenkin saavutettavuuskelkkaan, koska WebAIM on julkaissut ruudunlukijakyselynsä tulokset. Se on jo kymmenes tällä kertaa! <a href="https://webaim.org/projects/screenreadersurvey10/">Voit lukea itse tuloksista (englanniksi)</a>.</p> <p>Teen nostoja sitä mukaa, kun luen raporttia.</p> <h2 id="kaikki-ruudunlukijan-kayttajat-eivat-ole-sokeita" tabindex="-1">Kaikki ruudunlukijan käyttäjät eivät ole sokeita</h2> <p>Tärkeä asia kannattaa toistaa uudemman kerran: ruudunlukijakäyttäjät eivät ole vain sokot. 5,2 % vastaajista kertoi heillä olevan kognitiivisia haasteita ja 2,2 % motorisia vaikeuksia eli esimerkiksi vaikeuksia käyttää käsiä.</p> <p>Kun siis puhut ruudunlukijalle suunnittelusta, niin otathan huomioon, että ruudunlukijaa saattaa käyttää näkeväkin henkilö! Erilaiset näkymättömät tekstit eivät välttämättä ole toimivin ratkaisu tälle kohderyhmälle.</p> <h2 id="ei-ole-yhta-tiettya-ruudunlukijaa" tabindex="-1">Ei ole yhtä tiettyä ruudunlukijaa</h2> <p>JAWS ja NVDA kilpailevat suosituimman ruudunlukijan asemasta. Tämä ei tarkoita etteikö muita ruudunlukijoita käytettäisi. 71,6 % vastaajista käyttää useampaa kuin yhtä ruudunlukijaa. Tiedän tämän myös käyttäjätestauksesta: jokin lomake toimiikin paremmin toisella ruudunlukijalla tai toisella selaimella.</p> <h2 id="pistekirjoituksen-lukeminen-ei-ole-niin-yleista-kuin-luulin" tabindex="-1">Pistekirjoituksen lukeminen ei ole niin yleistä kuin luulin</h2> <p>38 % vastaajista lukee pistekirjoitusta ruudunlukijan käytön yhteydessä. 62 % ei käytä. Olisin odottanut tilanteen olevan toisinpäin. Ehkä siksi, että koulussa pistekirjoituksen lukeminen korostuu enemmän ja se on näkyvämpää minulle työn kautta. En osaa sanoa, että onko Suomi myös poikkeus tähän. Sen tiedän, että Suomessa pistekirjoituksen opetteluun on kuitenkin hyvä ote.</p> <p>Eri asia onkin, että väheneekö pistekirjoituksen lukeminen aikuisena tai vaikuttaako tähän esimerkiksi sokeutuminen aikuisena, jolloin pistekirjoitusta ei välttämättä jaksa opetella.</p> <h2 id="muista-testata-mobiilissa" tabindex="-1">Muista testata mobiilissa</h2> <p>Suosituimmat mobiiliruudunlukijat ovat VoiceOver 70,6 % (iOS) ja TalkBack 34,7 % (Android). Testaathan siis myös mobiililaitteilla? Tämä puoli on jäänyt itselläkin paitsioon.</p> <h2 id="odotukset-nettisivujen-saavutettavuutta-kohtaan-kasvavat" tabindex="-1">Odotukset nettisivujen saavutettavuutta kohtaan kasvavat</h2> <p>Vuosien kuluessa vastaajat ovat enemmän ja enemmän vastanneet, että saavutettavuutta parantaisi enemmän saavutettavuuden parantaminen nettisivuilla - eikä niinkään, että olisi parempia apuvälineitä. Odotukset saavutettavuudesta siis kovenevat vuosi vuodelta!</p> <h2 id="ei-palautetta-ei-tarkoita-etteiko-sita-olisi" tabindex="-1">Ei palautetta ei tarkoita etteikö sitä olisi</h2> <p>Vastaajista 67 % ei juuri koskaan tai ikinä ota yhteyttä nettisivun omistajaan. Muista siis, että palautteen puute ei tarkoita sitä, että mitään parannettavaa ei ole - vaan saattaa pahimmassa tapauksessa tarkoittaa sitä, että palautetta ei onnistuta jättämään tai ei vaivauduta. Tee siis käyttäjätestausta!</p> <h2 id="aela-kayta-captch-aa" tabindex="-1">Älä käytä CAPTCHAa</h2> <p>Eniten ongelmia sivuilla tuottaa CAPTCHA. Siis se, joka tarkistaa &quot;oletko ihminen vai kone&quot;. Ne perustuvat kuviin, joissa tunnistat esimerkiksi moottoripyöriä tai kirjoitat kirjaimia. Ne eivät ole saavutettavia - älä siis käytä niitä. Muitakin keinoja on.</p> <p>Huhhuh! Siinä oli taas hyvä infopaketti.</p> </content>
</entry>
<entry xml:lang="fi">
<title>Luokkaloikkarit-aiheeseen liittyvää muuta luettavaa</title>
<link href="https://samimaatta.fi/kirjoitukset/luokkaloikkarit-aiheeseen-liittyvaa-muuta-luettavaa/"/>
<updated>2024-03-03T00:00:00Z</updated>
<id>https://samimaatta.fi/kirjoitukset/luokkaloikkarit-aiheeseen-liittyvaa-muuta-luettavaa/</id>
<content type="html"><p>Omien <a href="/aiheet/luokkaloikkarit/">luokkaloikkarikirjoistusteni</a> lisäksi moni muukin on kirjoittanut siitä.</p> <h2 id="kaunokirjallisuus" tabindex="-1">Kaunokirjallisuus</h2> <ul> <li>Natalia Kallio kirjoittaa aiheesta kaunokirjallisessa teoksessaan &quot;Kotileikki&quot;.</li> </ul> <h2 id="tietokirjallisuus" tabindex="-1">Tietokirjallisuus</h2> <ul> <li>Suomen yhteiskunnan eri segmenttejä käsitellään tietokirjassa &quot;Kahdeksan kuplan Suomi&quot;.</li> <li>&quot;Huijarien vallankumous&quot; -kirjassa on luku, jossa aihetta käsitellään osasyynä huijaritunteille.</li> <li>Katriina Järvinen ja Laura Kolbe kirjoittavat aiheesta kirjoissaan &quot;Luokkaretkellä hyvinvointiyhteiskunnassa: Nykysukupolven kokemuksia tasa-arvosta&quot; ja &quot;Sopivia ja sopimattomia: lempi, luokka ja suomalainen parisuhde&quot;.</li> <li><a href="https://www.longplay.fi/pitkat/koyhan-perheen-lapsi">Katja Raunion kirjoittama juttu köyhästä lapsuudestaan (longplay.fi, maksumuuri)</a>, jossa hän käsittelee suhtautumistaan rahaan ja jutun lopussa sopeutumistaan keskiluokkaan.</li> </ul> <h2 id="tutkimus" tabindex="-1">Tutkimus</h2> <ul> <li>Mari Käyhkön tutkimusartikkelit työläistaustaisten naisten matkasta yliopistoon.</li> <li>Jarmo Kallungin <a href="https://trepo.tuni.fi/handle/10024/148423">väitöskirja kulttuurisesta mausta, joka liittyy yhteiskuntaluokkaan (Tampereen yliopisto)</a>. <a href="https://www.hs.fi/tiede/art-2000009628509.html?share=178e14ab4bde5a605373ac09a884bbc6">Helsingin sanomien artikkeli aiheesta</a>.</li> </ul> <h2 id="tiedatko-sina-kirjallisuutta-luokkaloikkaamisesta" tabindex="-1">Tiedätkö sinä kirjallisuutta luokkaloikkaamisesta?</h2> <p>Lähetä minulle vinkkauksesi, niin tutustun siihen!</p> </content>
</entry>
<entry xml:lang="fi">
<title>Lapinlahden satamatunneli</title>
<link href="https://samimaatta.fi/kirjoitukset/lapinlahden-satamatunneli/"/>
<updated>2024-02-18T00:00:00Z</updated>
<id>https://samimaatta.fi/kirjoitukset/lapinlahden-satamatunneli/</id>
<content type="html"><p><a href="https://mementomori.social/@SamiMaatta/111954278348970391">Mastodon-postaus samasta aiheesta</a>.</p> <p>Lapinlahden sairaalan puiston eteläosan kautta aiotaan vetää rekkatunneli satamaliikenteelle Jätkäsaaresta Salmisaareen ja Länsiväylälle. Tällä hetkellä on kaksi vaihtoehtoa, joista valita: suunnitelma A ja suunnitelma D.</p> <p><a href="https://paatokset.hel.fi/fi/kuulutukset-ja-ilmoitukset/yleisotilaisuus-satamatunnelin-liittamisesta-lansivaylaan-292-ja-suunnitelmaluonnokset-esilla">29.2. järjestetään yleisötilaisuus satamatunnelin suunnitelmasta Jätkäsaaren kirjastossa (hel.fi)</a>.</p> <p>Olennainen ero näissä on tunnelin suuaukon sijainti Salmisaaren päässä, mutta tarkemman tutkimisen jälkeen eroja löytyy lisää.</p> <p>Kirkkaalla pinkillä poikkiviivalla on merkitty tunnelin suuaukko ja siitä lähtevät kaksi kaistaa maan alle.</p> <figure> <figcaption>Suunnitelma A:n kaava.</figcaption> <picture><source type="image/webp" srcset="/img/6MqmQSlK3B-1080.webp 1080w"><img loading="lazy" decoding="async" src="/img/6MqmQSlK3B-1080.jpeg" alt="Kaava suunnitelmasta A. Tunnelin ja sen suuaukon rakentaminen lohkaisee huomattavan palan Lapinlahden sairaalan puiston eteläosaa." width="1080" height="1466"></picture> </figure> <figure> <figcaption>Suunnitelma D:n kaava.</figcaption> <picture><source type="image/webp" srcset="/img/02OrzrXf-V-1080.webp 1080w"><img loading="lazy" decoding="async" src="/img/02OrzrXf-V-1080.jpeg" alt="Kaava suunnitelmasta A. Tunnelin ja sen suuaukon rakentaminen lohkaisee huomattavan palan Lapinlahden sairaalan puiston eteläosaa." width="1080" height="1452"></picture> </figure> <h2 id="suunnitelma-d-sailyttaa-lapinlahden-puistoa-ja-mahdollistaa-rakentamisen" tabindex="-1">Suunnitelma D säilyttää Lapinlahden puistoa ja mahdollistaa rakentamisen</h2> <p>Suunnitelma D sijoittaisi tunnelin suuaukon jo sillalle. Tällöin ei tarvitsisi rakentaa Lapinlahden tai sen puiston alueelle. Länsiväylä olisi mahdollista kääntää Salmisaareen ja se mahdollistaisi muita suunnitelmia.</p> <p>Suunnitelma D olisi noin 100 miljoonaa euroa kalliimpi kuin suunnitelma A.</p> <p><a href="https://kartta.hel.fi/ltj/feature-report/182589/">Lapinlahden eteläpuoli on määritetty arvokkaaksi luontokohteeksi (kartta.hel.fi)</a>. Se on vieläpä korkeimman arvoluokan <strong>I</strong> kohde eli hyvin arvokas, sillä</p> <blockquote> <ul> <li>Kohteessa kasvaa valtakunnallisesti uhanalainen laji</li> <li>Kohteessa kasvaa Helsingissä äärimmäisen uhanalainen (CR) laji</li> <li>Kohde on tai siihen kuuluu Helsingissä hyvin harvinainen kasvillisuus- tai ympäristötyyppi. <cite><p></p></cite></li> </ul> <p><a href="https://kartta.hel.fi/Applications/ltj/html/linkitetyt_ltj/kantaan_linkitettyja/Arvottamiskriteerit_kasvikohteet_2020.htm"><em>Helsingin kaupungin luontotietojärjestelmä</em></a></p> <p></p> </blockquote> <p>Lapinlahden Lähde, joka (käsittääkseni) järjestää ja mahdollistaa erilaista toimintaa Lapinlahden sairaalan alueella <a href="https://lapinlahdenlahde.fi/uutiset/tunneli-lapinlahden-puistoon-ei-tanne/">vastustaa nimenomaisesti suunnitelmaa A</a>, jotta puiston eteläosa säilyisi.</p> <p>Tämän lisäksi vaihtoehto A estää kaupungin suunnitelmia kääntää Länsiväylä Salmisaaren suuntaan ja rakentaa alueelle asuntoja 5000 henkilölle ja saman määrän myös työpaikkoja.</p> <p><strong>Lisäys (20.2.2024):</strong> Teemu Pyyluoma käsittelee juuri tätä blogissaan <a href="https://tolkku.blogspot.com/2023/12/satamatunneli-lapinlahteen-on-liian.html?m=1">Satamatunneli Lapinlahteen on liian kallis</a>: Uuden asuinalueen tuomat tulot olisivat suuremmat, mitä suunnitelma D:n suuremmat kustannukset.</p> <figure> <figcaption>Suunnitelmassa D tunneliaukot olisivat sillan molemmin puolin. Rantaviivaa pitin kulkisi virkistysreitti.</figcaption> <picture><source type="image/webp" srcset="/img/od9qEW6N67-1078.webp 1078w"><img loading="lazy" decoding="async" src="/img/od9qEW6N67-1078.jpeg" alt="Havainnekuva suunnitelmasta D. Länsiväylän sillan kummallakin puolella on yhdet kaistat tunnelin suuaukkoihin." width="1078" height="874"></picture> </figure> <h2 id="suunnitelma-a-tuhoaa-lapinlahden-puistoa" tabindex="-1">Suunnitelma A tuhoaa Lapinlahden puistoa</h2> <p>Suunnitelma A lohkaisisi osan Lapinlahden virkistysalueen eteläosasta. Samalla se estäisi tällä hetkellä mahdollisen ja helpon kulun jalkakäytävälle ja pyörätielle Salmisaarenkadun pohjoispuolelle. Se myös siirtäisi Salmisaaren rantaviivaa mukailevan virkistysreitin alun Lapinlahden alueelle. Tämän lisäksi kaksi koirapuistoa pitäisi siirtää Lapinlahden puistosta.</p> <figure> <figcaption>Suunnitelma A:n havainnekuva tunnelin suuaukosta, joka kulkee Ilmarisen toimistorakennuksen takaa.</figcaption> <picture><source type="image/webp" srcset="/img/dt-eHIndmz-1024.webp 1024w"><img loading="lazy" decoding="async" src="/img/dt-eHIndmz-1024.jpeg" alt="Tunnelin suuaukko vie osan Lapinlahden eteläpuolta. Kaksikaistainen autotie menee tunnelin suuaukkoon. Suuaukon vieressä on jaettu jalkakäytävä ja kaksisuuntainen pyörätie." width="1024" height="628"></picture> </figure> <figure> <figcaption>Suunnitelma A poistaisi helpon kulun Salmisaarenkadun pohjoispuolella olevalle jalkakäytävälle ja pyörätielle.</figcaption> <picture><source type="image/webp" srcset="/img/Knq0zFmha_-949.webp 949w"><img loading="lazy" decoding="async" src="/img/Knq0zFmha_-949.jpeg" alt="Karttakuva nykyisestä tilanteesta. Punaisella korostuksella on merkitty poistuva suojatie, joka veisi kätevästi Salmisaarenkadun pohjoispuolella olevalle jalkakäytävälle ja pyörätielle." width="949" height="1411"></picture> </figure> <h2 id="paivitys-2-3-2024" tabindex="-1">Päivitys 2.3.2024</h2> <p>Juoni tiivistyy: <a href="https://www.hs.fi/kaupunki/art-2000010240859.html">Helsingin Sataman kikkailu sai yhden tunnelilinjauksen näyttämään satumaisen halvalta (hs.fi)</a>.</p> <p>Vaihtoehtojen välille syntyvä noin 100 miljoonan euron hintaero johtuu Helenin öljysäiliöiden siirrosta. Jutussa käy ilmi, että Helen olisi siirtämässä ja poistamassa käytöstä osan säiliöistä joka tapauksessa - tai jutun perusteella todennäköisesti.</p> <p>Ymmärsin niin, että teoriassa tunnelivaihtoehdot maksaisivat nyt saman verran.</p> <p>Vaihtoehto D on siis ilmeinen valinta, koska tunnelin alku olisi Länsiväylän sillalla, eikä se haittaisi Lapinlahden puistoa melulla. Osaa puistosta ja sen säilyttämisen arvoista luontoa ei tarvitsisi tuhota. Salmisaaren lisärakentamiselle jäisi tilaa.</p> <p>Ei epäilystäkään.</p> </content>
</entry>
<entry xml:lang="en">
<title>Math equations with Eleventy using TeXZilla</title>
<link href="https://samimaatta.fi/en/math-equations-with-eleventy-using-te-x-zilla/"/>
<updated>2024-01-03T00:00:00Z</updated>
<id>https://samimaatta.fi/en/math-equations-with-eleventy-using-te-x-zilla/</id>
<content type="html"><p>Assumed audience:</p> <ul> <li>people making HTML websites with <a href="https://www.11ty.dev/">Eleventy</a></li> <li>people who understand of LaTeX markup</li> <li>people who know how to install npm packages.</li> </ul> <h2 id="installing-te-x-zilla-and-making-a-filter" tabindex="-1">Installing TeXZilla and making a filter</h2> <p>Install TeXZilla using the command <code>npm install texzilla</code>.</p> <p>Then use it in your config file (for example <code>.eleventy.js</code>):</p> <pre class="language-js"><code class="language-js"><span class="token keyword">const</span> TeXZilla <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">"texzilla"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><br>module<span class="token punctuation">.</span><span class="token function-variable function">exports</span> <span class="token operator">=</span> <span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token parameter">eleventyConfig</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><br> eleventyConfig<span class="token punctuation">.</span><span class="token function">addFilter</span><span class="token punctuation">(</span><span class="token string">"math"</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">latex</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><br> <span class="token keyword">return</span> TeXZilla<span class="token punctuation">.</span><span class="token function">toMathMLString</span><span class="token punctuation">(</span>latex<span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> <p><code>.toMathMLString</code> method is described <a href="https://github.com/fred-wang/TeXZilla/wiki/Public-API#texzillatomathmlstring">TeXZilla's GitHub wiki page</a>:</p> <p><code>TeXZilla.toMathMLString = function(aTeX, aDisplay, aRTL, aThrowExceptionOnError)</code></p> <ul> <li><code>aTex</code> is the LaTeX equation and is given to the function as <code>latex</code>.</li> <li><code>aDisplay</code> determines if the MathML equation will be inline or a block element. Options are <code>true</code> or <code>false</code>. <ul> <li>Here I'm using <code>true</code>, so every equation is a block element.</li> </ul> </li> <li><code>aRLT</code> determines if the reading direction is from right o left. Options are <code>true</code> or <code>false</code>. <ul> <li>Here I'm using <code>false</code>, so the reading direction is from left to right.</li> </ul> </li> <li><code>aThrowExceptionOnError</code> determines if the transformation fails, there would be an error message when transforming the LaTeX markup into MathML markup. Options are <code>true</code> or <code>false</code>. <ul> <li>I'm using <code>false</code>, so I'm not getting any error messages.</li> </ul> </li> </ul> <h2 id="using-the-filter" tabindex="-1">Using the filter</h2> <p>Use the filter like any other (in Nunjucks) while using Eleventy.</p> <p>First write the LaTeX equation that you want to see rendered in MathML. Then apply the following filters:</p> <pre class="language-njk"><code class="language-njk"><span class="token delimiter punctuation">{{</span> <span class="token string">"\\frac{1}{\\sqrt{2}}"</span> <span class="token operator">|</span> <span class="token variable">math</span> <span class="token operator">|</span> <span class="token variable">safe</span> <span class="token punctuation">}</span><span class="token punctuation">}</span><br></code></pre> <p>Notice that you have to escape the slashes that LaTeX uses and that you need to also use the <code>safe</code> filter, so that the curly brackets aren't escaped (I assume, I'm not that sure - but it works!).</p> <h2 id="the-end-result" tabindex="-1">The end result</h2> <p>After all this we have a properly rendered MathML equation (assuming your browser supports it, nowadays the major ones should): <math display="block" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mfrac><mn>1</mn><msqrt><mn>2</mn></msqrt></mfrac><mo>.</mo></mrow><annotation encoding="TeX">\frac{1}{\sqrt{2}}.</annotation></semantics></math></p> <h2 id="continuation" tabindex="-1">Continuation</h2> <p>This isn't the most straightforward or elegant solution, but it's a start I managed to do. Shout out to Eleventy Discord! People there really helped me out with this.</p> <p>The best case scenario would be to just be able to write LaTeX markup and have it converted to MathML without individual filters.</p> </content>
</entry>
<entry xml:lang="fi">
<title>TeXZillan käyttäminen Eleventyllä</title>
<link href="https://samimaatta.fi/kirjoitukset/te-x-zillan-kayttaminen-eleventylla/"/>
<updated>2024-01-03T00:00:00Z</updated>
<id>https://samimaatta.fi/kirjoitukset/te-x-zillan-kayttaminen-eleventylla/</id>
<content type="html"><p>Esitietovaatimukset:</p> <ul> <li>ymmärrys HTML-sivujen tekemisestä <a href="https://www.11ty.dev/">Eleventyllä (englanniksi)</a></li> <li>ymmärrys LaTeX-koodin kirjoittamisesta</li> <li>ymmärrys yksinkertaisten pakettien käyttämisessä web-sovelluksissa.</li> </ul> <h2 id="paketin-asennus-ja-kayttoonotto" tabindex="-1">Paketin asennus ja käyttöönotto</h2> <p>Asenna TeXZilla projektiisi kommennolla <code>npm install texzilla</code>. Sitten lisää paketti käyttöön <code>.eleventy.js</code>-tiedostossasi (tai muun nimisessä config-tiedostossa):</p> <pre class="language-js"><code class="language-js"><span class="token keyword">const</span> TeXZilla <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">"texzilla"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><br>module<span class="token punctuation">.</span><span class="token function-variable function">exports</span> <span class="token operator">=</span> <span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token parameter">eleventyConfig</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><br> eleventyConfig<span class="token punctuation">.</span><span class="token function">addFilter</span><span class="token punctuation">(</span><span class="token string">"math"</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">latex</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><br> <span class="token keyword">return</span> TeXZilla<span class="token punctuation">.</span><span class="token function">toMathMLString</span><span class="token punctuation">(</span>latex<span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> <p><code>.toMathMLString</code>-metodin käyttö kuvaillaan <a href="https://github.com/fred-wang/TeXZilla/wiki/Public-API#texzillatomathml">TeXZillan GitHub-sivuilla (englanniksi)</a>:</p> <p><code>TeXZilla.toMathMLString = function(aTeX, aDisplay, aRTL, aThrowExceptionOnError)</code></p> <ul> <li><code>aTex</code> on itse LaTeX-kaava, joka on yllä olevassa funktiossa <code>latex</code>.</li> <li><code>aDisplay</code> määrittelee, että näytetäänkö kaava leipätekstinä vai omana block-sisältönään. Vaihtoehdot <code>true</code> tai <code>false</code>. <ul> <li>Oma asetus <code>true</code> eli kaikki kaavat ovat block-sisältöä.</li> </ul> </li> <li><code>aRLT</code> määrittelee, onko lukemissuunta oikealta vasemmalle. Vaihtoehdot <code>true</code> tai <code>false</code>. <ul> <li>Oma asetus <code>false</code> eli lukemissuunta on vasemmalta oikealle.</li> </ul> </li> <li><code>aThrowExceptionOnError</code> määrittelee, tuleeko virheilmoitus, jos LaTeX-koodin muokkaamisessa MathML-koodiksi tapahtuu virhe. Vaihtoehdot <code>true</code> tai <code>false</code>. <ul> <li>Oma asetus <code>false</code> eli en halua erillisiä virheilmoituksia.</li> </ul> </li> </ul> <h2 id="filtterin-kaytto" tabindex="-1">Filtterin käyttö</h2> <p>Filtterin käyttö onnistuu tuttuun tapaan kirjoittamalla ensin LaTeX-koodilla matemaattinen lauseke, jonka haluaa MathML-koodiksi.</p> <pre class="language-njk"><code class="language-njk"><span class="token delimiter punctuation">{{</span> <span class="token string">"\\frac{1}{\\sqrt{2}}"</span> <span class="token operator">|</span> <span class="token variable">math</span> <span class="token operator">|</span> <span class="token variable">safe</span> <span class="token punctuation">}</span><span class="token punctuation">}</span><br></code></pre> <p>Erikoisuutena on, että LaTeX-koodissa täytyy olla kaksoiskenoviivat. Esimerkiksi <code>\\sqrt{}</code>. Tämän lisäksi pitää käyttää myös filtteriä <code>safe</code>, joka vie tekstin sellaisenaan filtterille. Muuten ei saada oikeaa lopputulosta.</p> <h2 id="lopputulos" tabindex="-1">Lopputulos</h2> <p>Kaiken tämän työn jälkeen voidaan kirjoittaa matematiikan kaavoja MathML-koodilla Eleventyllä: <math display="block" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mfrac><mn>1</mn><msqrt><mn>2</mn></msqrt></mfrac><mo>.</mo></mrow><annotation encoding="TeX">\frac{1}{\sqrt{2}}.</annotation></semantics></math></p> <h2 id="jatko" tabindex="-1">Jatko</h2> <p>Tämä ei ole suoraviivaisin tapa saada matemaattista sisältöä Eleventyllä, mutta se on ihan hyvä alku. Parhaimmillaan haluaisin, että voin kirjoittaa LaTeX-koodia sellaisenaan tekstin sekaan miettimättä, mitä filtteriä käytän. Nyt minun pitäisi tehdä vielä erikseen filtteri, joka tekee kaavoista leipätekstin sekaan sopivia tekstejä.</p> <p>Siinä olisi omat haasteensa, joten palaan siihen myöhemmin.</p> </content>
</entry>
<entry xml:lang="fi">
<title>Keitä palkaton sairauspoissaolo kurittaa eniten?</title>
<link href="https://samimaatta.fi/kirjoitukset/keita-palkaton-sairauspoissaolo-kurittaa-eniten/"/>
<updated>2023-12-24T00:00:00Z</updated>
<id>https://samimaatta.fi/kirjoitukset/keita-palkaton-sairauspoissaolo-kurittaa-eniten/</id>
<content type="html"><p>Hallitus kaavailee ensimmäisen sairauspäivän palkattomuutta. Eittämättä ajatus liittyy epämääräiseen stereotypiaan siitä, että yleisimmät sairauslomapäivät ovat perjantaisin tai maanantaisin. Siis joko pitkää viikonloppua tai krapulapäivää varten. Ajatellaan, että on siis järkevämpää olla kannustamatta tähän käytökseen kitkemällä yhden päivän sairauslomat. (Näin siis mutuilen, mikä palkattoman sairauspoissaolon syynä on.)</p> <p>Katsotaanpa, miten isosta ongelmasta on kyse ja keihin tämä vaikuttaa eniten. Tutkin tätä varten <a href="https://www.stat.fi/tietotrendit/artikkelit/2023/yhden-ja-kahden-paivan-sairauspoissaolot-yleisia/">Tieto &amp; Trendi -lehden julkaisua &quot;Yhden ja kahden päiävän poissaolot yleisiä&quot;</a>. Julkaisuissa ollaan tutkittu vuoden 2022 sairauspoissaoloja.</p> <h2 id="yhden-tai-vajaan-paivan-sairauslomia-pidetaan-todella-vahan" tabindex="-1">Yhden tai vajaan päivän sairauslomia pidetään todella vähän</h2> <p>Vuonna 2022 keskimäärin 7 prosenttia kaikista palkansaajista oli viikon tai vähemmän sairaana poissa töistä. Tämä vastaa 168 000 henkilöä.</p> <p>Suurin osa oli poissa kaksi päivää tai vähemmän. Yhden tai puolikkaan päivän sairauspoissaoloja oli 1,4 prosenttilla palkansaajista. Tämä on noin 34 000 palkansaajaa. Arvioin sen silmämääräisesti ensimmäisestä kaaviosta palkansaajien sairauspoissaolojen kestosta päivinä.</p> <p>Mielestäni siis jo tämä 1,4 prosentin määrä vaikuttaa pieneltä. Tutkitaanpa, että millaiseen ryhmään palkattomuus vaikuttaisi.</p> <h2 id="eniten-paivan-tai-vajaan-paivan-sairauslomapaivia-pitavat-naiset" tabindex="-1">Eniten päivän tai vajaan päivän sairauslomapäiviä pitävät naiset</h2> <p>Naisilla yksittäisiä sairauspoissaolopäiviä on miltei kaksinkertainen määrä miehiin verrattuna. Miehillä yksittäisiä sairauslomapäivä on 12 000 kappaletta, kun taas naisilla 22 000 kappaletta.</p> <p>Aiheellinen kysymys voisi olla, että mistä tämä johtuu? Julkaisussa esitetään ainakin kaksi mahdollista syytä:</p> <blockquote> <p>&quot;Sukupuolten välillä ilmenevään eroon voi liittyä perheenjäsenten hoitamista sairauden vuoksi. Näistä poissaoloista ei ole tarkkaa tietoa työvoimatutkimuksen perusteella.&quot;</p> <p><cite>- Otsikon &quot;Naiset useammin poissa yhden päivän kuin miehet&quot; alla.</cite></p> </blockquote> <blockquote> <p>&quot;Kun tarkastellaan sairauspoissaolopäiviä ammattiryhmittäin, kärjessä on asiakaspalvelutyö terveydenhoitoalalla.&quot;</p> <p><cite>- Otsikon &quot;Sairauspoissaoloja kertyy eniten asiakaspalvelutyössä&quot; alla.</cite></p> </blockquote> <p>Naiset jäävät siis tyypillisimmin kotiin hoitamaan esimerkiksi sairasta lasta. Terveydenhoitoala on myös tyypillisesti naisvaltainen ala. On helppo ymmärtää, että hoitotyössä altistuu myös helpommin sairauksille ja uupumukselle.</p> <h2 id="sairauslomapaivat-eivat-edes-painotu-maanantaille-tai-perjantaille" tabindex="-1">Sairauslomapäivät eivät edes painotu maanantaille tai perjantaille</h2> <p><a href="https://tyoelamatieto.fi/fi/aineistot/lyhyet-sairauspoissaolot-eri-aloilla">Työterveyslaitoksen tekemän kertatutkimuksen (2022)</a> mukaan maanantai ja perjantai eivät ole erityisen suosittuja sairauspoissaolopäiviä. Maanantaina ja perjantaina ollaan (viikonloppua lukuun ottamatta) vähiten poissa sairauden vuoksi. Tiistai, keskiviikko ja torstai ovat yleisempiä sairauspoissaolopäiviä.</p> <h2 id="hallitus-kurittaa-naisia" tabindex="-1">Hallitus kurittaa naisia</h2> <p>Yllätys, yllätys hallitus kurittaa naisia olemattoman ongelman vuoksi.</p> <p>Jos ongelma on olemassa tietyillä aloilla ja sairauspoissaolot ovat oikeasti aiheettomia, niin täytyisi alalla itsellään katsoa peiliin ja miettiä, miksi näin on. Eikä rankaista kaikkia - ja erityisesti naisia.</p> </content>
</entry>
<entry xml:lang="fi">
<title>Keinoja tuottaa HTML-tiedostoja, joissa on MathML-koodia</title>
<link href="https://samimaatta.fi/kirjoitukset/keinoja-tuottaa-html-tiedostoja-joissa-on-math-ml-koodia/"/>
<updated>2023-12-03T19:51:17Z</updated>
<id>https://samimaatta.fi/kirjoitukset/keinoja-tuottaa-html-tiedostoja-joissa-on-math-ml-koodia/</id>
<content type="html"><h2 id="keinoja" tabindex="-1">Keinoja</h2> <ul> <li><a href="https://math.nist.gov/~BMiller/LaTeXML/">LaTeXML (englanniksi)</a>: kokonaisten LaTeX-tiedostojen muuttamiseen HTML-tiedostoiksi.</li> <li><a href="https://github.com/fred-wang/TeXZilla">TeXZilla (GitHub, englanniksi)</a>: HTML-tiedostossa olevien LaTeX-kaavojen muuttamiseksi MathML-koodiksi. <ul> <li>Tekemäni ohje sen käyttämiseksi: <a href="/kirjoitukset/la-te-x-koodin-korvaaminen-math-ml-koodilla-html-tiedostossa/">LaTeX-koodin korvaaminen MathML-koodilla HTML-tiedostossa</a>.</li> </ul> </li> <li><a href="https://www.wiris.com/en/mathtype/">MathType (Wiris, englanniksi)</a>: Microsoft Office Wordin kaavaeditorin, jonka vaihtoehtoisest kuvauksesta voi kopioida MathML-koodin.</li> </ul> </content>
</entry>
<entry xml:lang="fi">
<title>LaTeX-koodin korvaaminen MathML-koodilla HTML-tiedostossa</title>
<link href="https://samimaatta.fi/kirjoitukset/la-te-x-koodin-korvaaminen-math-ml-koodilla-html-tiedostossa/"/>
<updated>2023-12-02T08:33:01Z</updated>
<id>https://samimaatta.fi/kirjoitukset/la-te-x-koodin-korvaaminen-math-ml-koodilla-html-tiedostossa/</id>
<content type="html"><p>Esitietovaatimukset:</p> <ul> <li>ymmärrys HTML-sivujen tekemisestä</li> <li>ymmärrys LaTeX-koodin kirjoittamisesta</li> <li>ymmärrys yksinkertaisten pakettien käyttämisessä web-sovelluksissa.</li> </ul> <h2 id="math-ml-koodin-ja-la-te-x-koodin-vertailu" tabindex="-1">MathML-koodin ja LaTeX-koodin vertailu</h2> <p>MathML-koodia on varsin tympeä tuottaa, koska se perustuu vahvasti sisäkkäisiin elementteihin ja on sen vuoksi hankala lukea.</p> <p>LaTeX-koodi on taas helpompi ymmärtää ja paljon helpompi kirjoittaa (ainakin matematiikkaa kirjoittavalle). Se on myös paljon laajemmalle levinnyt tapa tuottaa matemaattista tekstiä. Näiden lopputulos on yleensä PDF-tiedosto, joka ei ole kovin saavutettava eli se toimii korkeintaan välttävästi esimerkiksi ruudunlukijaohjelmistoilla, kuten NVDA, JAWS tai VoiceOver.</p> <p>MathML-koodi:</p> <pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>math</span> <span class="token attr-name">xmlns</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>http://www.w3.org/1998/Math/MathML<span class="token punctuation">"</span></span><br> <span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>semantics</span><br> <span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mfrac</span><br> <span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mn</span><span class="token punctuation">></span></span>1<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mn</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>msqrt</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>mn</span><span class="token punctuation">></span></span>2<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mn</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>msqrt</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>mfrac</span><br> <span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>semantics</span><br> <span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>math</span><br><span class="token punctuation">></span></span></code></pre> <p>LaTeX-koodi:</p> <pre class="language-html"><code class="language-html">$\frac{1}{\sqrt{2}}$</code></pre> <p>Kuten nähdään, niin LaTeX-koodi on paljon yksinkertaisempaa, mutta se sisältää paljon vähemmän koneluettavaa informaatiota, eikä sitä tueta web-ympäristössä.</p> <h2 id="html-tiedoston-la-te-x-koodin-muuttaminen-math-ml-koodiksi" tabindex="-1">HTML-tiedoston LaTeX-koodin muuttaminen MathML-koodiksi</h2> <p>Eräs tapa muuttaa HTML-tiedoston kaikki LaTeX-koodit MathML-koodiksi on käyttää <a href="https://github.com/fred-wang/TeXZilla">TeXZilla-nimistä ohjelmistoa (GitHub, englanniksi)</a>. Tapa, jonka esitän on dokumentoitu TeXZillassa ja törmäsin tähän Brian Kardellin sivuilla, joilla on hän myös hiukan avaa prosessia. <a href="https://bkardell.com/blog/NuclearMaths.html">Blogipostauksessaan Brian Kardell demonstroi, miten hän on muuttanut kokonaisen &quot;nettisivukirjan&quot; LaTeX-koodin MathML-koodiksi (englanniksi)</a>.</p> <p>Esittelen siis täysin saman tavan, jotta toivottavasti saman tekeminen olisi seuraavalle helpompaa.</p> <h3 id="vaihe-1-te-x-zillan-asentaminen" tabindex="-1">Vaihe 1: TeXZillan asentaminen</h3> <p>Asenna TeXZilla projektiisi <code>npm install texzilla</code> -komennolla.</p> <h3 id="vaihe-2-html-tiedosto" tabindex="-1">Vaihe 2: HTML-tiedosto</h3> <p>Luo HTML-tiedosto, jolle kirjoitat matematiikkaa LaTeX-koodilla. Leipätekstiin sopivan matematiikan kaavan saa tuttuun tapaan yksittäisillä dollarimerkeillä ja &quot;blokkityylisen&quot; kaavan saa kaksoisdollareilla.</p> <p>Esimerkkitiedostoni sisältö:</p> <pre class="language-html"><code class="language-html"><span class="token doctype"><span class="token punctuation">&lt;!</span><span class="token doctype-tag">DOCTYPE</span> <span class="token name">html</span><span class="token punctuation">></span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>html</span> <span class="token attr-name">lang</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>fi<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>head</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>meta</span> <span class="token attr-name">charset</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>UTF-8<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>meta</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>viewport<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>width=device-width, initial-scale=1.0<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>title</span><span class="token punctuation">></span></span>TeXzilla testailua<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>title</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>head</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>body</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>$\frac{1}{\sqrt{2}}$<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>$$\frac{1}{\sqrt{2}}$$<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>body</span><span class="token punctuation">></span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>html</span><span class="token punctuation">></span></span></code></pre> <h3 id="vaihe-3-muunna-html-tiedoston-la-te-x-koodi-math-ml-koodiksi" tabindex="-1">Vaihe 3: Muunna HTML-tiedoston LaTeX-koodi MathML-koodiksi</h3> <p>Käytämme <span lang="en">streamline</span> -tapaa, jonka avulla luomme uuden HTML-tiedoston, jossa LaTeX-koodi on muuttunut MathML-koodiksi.</p> <p>Se tapahtuu komentorivin komennolla</p> <p><code>cat latex.html | node ./node_modules/texzilla/TeXZilla.js streamfilter &gt; mathml.html</code></p> <ul> <li><code>latex.html</code> on lähtötiedosto (voit päättää nimen itse), jossa matematiikka on kirjoitettu LaTeX-koodilla.</li> <li><code>./node_modules/texzilla/TeXZilla.js</code> on sijainti, jossa projektisi TeXZilla-tiedostot ovat.</li> <li><code>mathml.html</code> on tiedosto (voit päättää nimen itse), jossa LaTeX-koodi on muutettu MathML-koodiksi.</li> <li>Muu kirjoitus komentorivillä on komentoja, jotka kirjoitetaan kuten näytetty.</li> </ul> <h3 id="valmis" tabindex="-1">Valmis!</h3> <p>Nyt sinulla on HTML-tiedosto, jonka matemaattinen teksti on MathML-koodilla tehty.</p> </content>
</entry>
<entry xml:lang="fi">
<title>Matematiikan kuuntelu puhesynteesillä suomeksi</title>
<link href="https://samimaatta.fi/kirjoitukset/matematiikan-kuuntelu-puhesynteesilla-suomeksi/"/>
<updated>2023-11-19T10:22:16Z</updated>
<id>https://samimaatta.fi/kirjoitukset/matematiikan-kuuntelu-puhesynteesilla-suomeksi/</id>
<content type="html"><p>Ruudunlukijoilla (tai muilla ohjelmistoilla) ei ole mahdollista kuunnella matematiikkaa suomen kielellä. Tämä muuttuu.</p> <p>Katso ja kuuntele demo (mukana myös tekstitykset): <a href="https://www.youtube.com/watch?v=uszqe6Kle-M&amp;feature=youtu.be">MathCAT suomenkielinen demo (Youtube)</a>. Kyseessä on kehitysversio, joten hiomattomia kohtia löytyy paljon.</p> <h2 id="kaynnissa-oleva-projekti" tabindex="-1">Käynnissä oleva projekti</h2> <p>MathCAT-lisäosa on Neil Soifferin kehittämä avoimen lähdekoodin ohjelmisto. Se on ensisijaisesti NVDA-ruudunlukijan lisäosa, mutta ohjelmisto ei ole vain ruudunlukijoille. Se on mahdollista sisällyttää moneen muuhunkin puhetta tuottavaan ohjelmaan. Ohjelmistosta ovat kiinnostuneet muun muassa JAWS-ruudunlukijaa tuottava <span lang="en">Freedom Scientific</span> ja <span lang="en">Dolphin EasyReader</span> -lukuohjelmaa tuottava <span lang="en">Dolphin Computer Access</span>.</p> <p>Tätä projektia tehdään yhteistyössä pohjoismaiden kesken.</p> <p>Nyt mukana ovat Saavutettavuuskirjasto Celiaa vastaavat erikoiskirjastot Ruotsista <span lang="sv">Myndigheten för tillgängliga medier</span> ja <span lang="sv">Specialpedagogiska skolmyndigheten</span>.</p> <p>Ensi vuonna on odotettavissa, että myös Norja, Tanska, Islanti ja Alankomaat (Dedicon) lähtevät mukaan kääntämistyöhön.</p> <p>Vuonna 2024 MathCAT tulee tukemaan myös matematiikan pistekirjoitusta pistenäytöillä.</p> <h2 id="testaa-itse" tabindex="-1">Testaa itse!</h2> <p>Voit suunnata <a href="https://github.com/samimaattaCelia/MathCAT-fi">suomenkielisen MathCAT-lisäosan kehitysversioon GitHubin kautta</a>.</p> <p>Ohjeet testaamiseen (samat löytyvät myös GitHubista):</p> <p>Testaamiseen tarvitset NVDA-ruudunlukijan, joka on saatavilla vain Windows-käyttöjärjestelmälle. Ohje testaamiseen:</p> <ol> <li>Lataa MathCAT-lisäosa NVDA:n lisäosakaupasta ja ota se käyttöön. Voit nyt kuunnella matemaattisia kaavoja englanniksi ja lukea ne myös pistenäytöltä Nemeth- tai UEB-standardilla.</li> <li>Siirry painikkeeseen <code lang="en">code</code>, paina valikko auki ja siirry sen sisällä kohtaan <code lang="en">Download zip</code>.</li> <li>Etsi ladattu tiedosto ja pura se. Avaa purettu kansio.</li> <li>Siirry kansioon <code lang="en">Rules</code> ja kopioi kansio <code lang="en">Languages</code>.</li> <li>Siirry sijaintiin, jonne NVDA lataa lisäosat. Alla ohjeet. Sen pitäisi olla muotoa <code>\AppData\Roaming\nvda\addons\MathCAT\globalPlugins</code>. <ol> <li>Windowsilla sinne pääsee kätevästi painamalla Win-näppäintä ja hakemalla <code>Suorita</code>.</li> <li>Kirjoita Suorita-ikkunaan <code>%appdata%</code>. Se vie sinut oikeaan sijaintiin, josta löydät nvda-kansion (kirjoitettu pienellä).</li> <li>Etene siis nvda, addons, MathCAT, globalplugins, MathCAT, Rules. Rules-kansiossa on oma <code>Languages</code> -kansio.</li> <li>Liitä kansio <code>Languages</code> ja hyväksy tiedostojen korvaaminen. Näin lisäät suomenkielisen osan MathCATiin.</li> </ol> </li> <li>Käynnistä NVDA varmuuden vuoksi uudelleen.</li> <li>MathCATin asetuksia voi muuttaa NVDA-näppäin + N, asetukset, ”MathCAT settings”. (Valikko on englanninkielinen.) Voit muuttaa sitä kautta matematiikan luennan suomenkieliseksi.</li> <li>Valitse luentatavaksi <code>ClearSpeak</code>. Se on käännetty. <code>SimpleSpeak</code> on myös suomenkielinen, mutta sen käännökset on tehty automaattisesti eli tulos ei ole kovin hyvä.</li> <li>Voit nyt testata matematiikan kaavojen luentaa eri sivuilla, jos matematiikka on esitetty MathML-koodilla. <a href="https://samimaattacelia.github.io/math-fi.html">Kokeile esimerkiksi tekemääni testisivustoa</a>. Se ei ole kuitenkaan kattava, joten voit kokeilla esimerkiksi Wikipedian matematiikkasivuja. Niissä oleva matematiikka on esitetty MathML-koodilla.</li> </ol> <p>Jos huomaat puutteita luennassa tai käännöksissä, niin voit lähettää palautetta suoraan Sami Määtälle, <a href="mailto:sami.maatta@celia.fi">sami.maatta@celia.fi</a> tai lisätä GitHubin avulla &quot;issuen&quot;.</p> <h2 id="muutoksia-suosituksiin-math-ml-koodin-kaytosta" tabindex="-1">Muutoksia suosituksiin MathML-koodin käytöstä</h2> <p>Tämä tulee vaikuttamaan tekemääni julkaisuun <a href="/matematiikka-verkossa-ja-sahkokirjoissa/">MathML-koodin käytöstä sähkökirjoissa</a>.</p> <p>Kääntämisen ja pistenäyttötuen jälkeen riittää, että käyttää MathML-koodia sivuillaan ja sähkökirjoissa.</p> </content>
</entry>
<entry xml:lang="fi">
<title>Käsitteistöä kustomoiduista näppiksistä</title>
<link href="https://samimaatta.fi/kirjoitukset/kasitteistoa-kustomoiduista-nappiksista/"/>
<updated>2023-10-15T10:19:56Z</updated>
<id>https://samimaatta.fi/kirjoitukset/kasitteistoa-kustomoiduista-nappiksista/</id>
<content type="html"><p>Välillä tulee mietittyä kustomoidun näppiksen hankkimista. Lueskelin vähän taustatietoja sitä varten.</p> <h2 id="ansi-ja-iso-nappainasettelu" tabindex="-1">ANSI- ja ISO-näppäinasettelu</h2> <p>Ensimmäisenä ihmettelin ANSI- ja ISO-näppäimistöasettelua. Ilmeisesti ANSI on laajemmassa käytössä Yhdysvalloissa ja ISO esimerkiksi Euroopassa ja Suomessa.</p> <p>https://media.mementomori.social/media_attachments/files/111/238/068/973/275/907/small/f8be0206540790d9.jpeg</p> <h2 id="keycaps-eli-nappainhatut" tabindex="-1">Keycaps eli näppäinhatut</h2> <p>Tällaiseen näppikseen hankintaan yleensä erikseen myös näppäimet. Ne eivät välttämättä tule näppäimistökotelon mukana. Englanniksi niitä kutsutaan nimellä ”keycaps”.</p> <p>Nämä taitavat olla se syy, miksi kustomoituja näppiksiä edes tehdään! Näppiksen ulkonäköä voi helposti muokata erilaisilla keycapseilla.</p> <p>Näitä tilatessa on olennaista muistaa, että tilaa suomalaiseen asetteluun sopivat näppäimet eli saa paketissa mukana tärkeimmät: ä, ö ja å. Näiden keycapsien nimessä lukee yleensä ”Nordic”. En ainakaan törmännyt täysin suomalaisiin keycapseihin.</p> <p>Kuvan lähde: kbdfans.com/collections/keycap</p> <p>https://media.mementomori.social/media_attachments/files/111/238/199/571/725/677/original/a4df74d7736abfa1.png</p> <h2 id="nappaimistokotelon-joustavuus" tabindex="-1">Näppäimistökotelon joustavuus</h2> <p>Näppäimistökoteloa katsoessa törmää vaihtoehtoihin ”flex” tai ”no-flex”. Tämä kertoo, joustaako näppäimistö vai ei, kun sillä kirjoittaa.</p> <p>Ilmeisesti flex on ollut trendi, joka on nyt väistymässä. Itse ainakin haluaisin tukevan näppäimistön.</p> <h2 id="hotswap-vs-soldering" tabindex="-1">Hotswap vs. soldering</h2> <p>Näppäimet asetetaan kytkinten päälle, jotka täytyy kiinnittää näppäimistökotelon sisällä olevaan kehikkoon. Kehikko voi olla ”hotswap” tai ”solderable” eli juotettava.</p> <p>Hotswap tarkoittaa todella helppoa kytkinten ja näppäimien vaihtamista.</p> <p>Ilmeisesti muussa tapauksessa kytkimet juotettaisiin kiinni kehikkoon, mihin tarvitaan jo juottamiseen tarkoitettuja välineitä.</p> <p>Tämä on selvinnyt tähän mennessä.</p> </content>
</entry>
<entry xml:lang="fi">
<title>Nettisivujen pystyttäminen</title>
<link href="https://samimaatta.fi/kirjoitukset/nettisivujen-pystyttaminen/"/>
<updated>2023-10-06T17:04:51Z</updated>
<id>https://samimaatta.fi/kirjoitukset/nettisivujen-pystyttaminen/</id>
<content type="html"><p>Olen pystyttänyt nettisivut jo parikin kertaa: nämä omani ja <a href="https://jalankulkijat.fi">Helsingin jalankulkijoiden yhdistyksen nettisivut</a>. Saatat huomata niiden samankaltaisuuden...</p> <p>Olen tehnyt myös aika vanhan (taitaapi olla ihan ensimmäinen kirjoitukseni!), jossa kuvailen, miten omat nettisivut pystytetään. Osin ne pitävät vielä paikkaansa, mutta ohje pätee ennemminkin Wordpress-sivujen pysyttämiseen.</p> <p>Nyt teen ohjeet siltä pohjalta, että ylläpidät sivujasi GitHubin kautta <a href="https://11ty.dev/">Eleventyllä (englanniksi)</a>.</p> <h2 id="ohjeet-nopeasti" tabindex="-1">Ohjeet nopeasti</h2> <p>Oletus on, että olet jo kehittänyt sivustosi GitHubiin.</p> <ol> <li>Domainin eli nettiosoitteen hankinta. <ul> <li>Jos haluat fi-loppuisen osoitteen, niin tarkista sen saatavuus <a href="https://www.traficom.fi/fi/viestinta/fi-verkkotunnukset/fi-verkkotunnushaku">Traficomin palvelusta</a>.</li> <li>Jos fi-loppuisella osoitteella ei ole väliä, niin käytä jotain ulkomaista palvelua domain-hankintaan.</li> </ul> </li> <li>Valitse palveluntarjoaja, jolta vuokraat domainia. Yleensä ne saadaan vuodeksi kerrallaan ja maksat aina vuoden kerrallaan.</li> <li>Käytä <a href="https://www.netlify.com/">Netlify-palvelua (englanniksi)</a>. Sivuston ohjeet ohjaavat oikein hyvin nettisivujen pystyttämiseen.</li> <li>Noudata Netlifyn ohjeita DNS-nimipalvelimen suuntaamiseksi Netlifylle. Tämän jälkeen saat domainin käyttöösi.</li> </ol> <h2 id="temppu-tehty" tabindex="-1">Temppu tehty</h2> <p>Oikeastaan siinä se siis on!</p> </content>
</entry>
<entry xml:lang="fi">
<title>Rekrytointi-ilmoituksen näkyvyys Mastodonissa ja LinkedInissä</title>
<link href="https://samimaatta.fi/kirjoitukset/rekrytointi-ilmoituksen-nakyvyys-mastodonissa-ja-linked-inissa/"/>
<updated>2023-08-19T07:44:47Z</updated>
<id>https://samimaatta.fi/kirjoitukset/rekrytointi-ilmoituksen-nakyvyys-mastodonissa-ja-linked-inissa/</id>
<content type="html"><p>Mastodon ja LinkedIn ovat eniten käyttämäni sosiaaliset mediat. Koen, että kummassakin olen onnistunut luomaan kivan ilmapiirin itselleni ja seuraajilleni.</p> <p>Minusta olisi kiva, että useampi tuntemani henkilö käyttäisi Mastodonia. Tämä on siis osaltaan vastaus kysymyksiin, että &quot;Onko Mastodon tarpeeksi iso?&quot; tai &quot;Saako siellä näkyvyyttä?&quot;</p> <p>Vertailen siis erilaisia tunnuslukuja noin vuorokauden niiden julkaisun jälkeen.</p> <p>Jos alustat ovat sinulle tuttuja, niin <a href="#tulokset">hyppää suoraan tuloksiin</a>.</p> <h2 id="mastodon" tabindex="-1">Mastodon</h2> <p>Mastodonissa boostaus tarkoittaa julkaisun uudelleenjakamista, tykkääminen (&quot;<span lang="en">favourite</span>&quot;) ei vaikuta julkaisun näkyvyyteen, vaan on enemmänkin viesti siitä, että se julkaisu on nähty ja siitä tykätään. Vastaaminen toimii, kuten LinkedInissä tai Twitterissä.</p> <p>Tärkeänä erona LinkedIniin on, että Mastodonissa ei ole algoritmia, joka tarjoaa julkaisua henkilöille muille kuin seuraajille. Viestivirta on myös kronologinen. Näkyvyys syntyy siis vain niiden henkilöiden toimesta, jotka jakavat julkaisun omille seuraajilleen.</p> <figure> <figcaption>Kuva 1. <a href="https://mementomori.social/@SamiMaatta/110909046325144979">Rekrytointijulkaisu Mastodonissa</a>. Kuva luotu <a href="mastopoet.ohjelmoi.fi/">Mastopoet-ohjelmalla</a>.</figcaption> <picture><source type="image/webp" srcset="/img/R4evwn4zvE-1200.webp 1200w"><img loading="lazy" decoding="async" alt="Kuvakaappaus käyttäjän Sami Määttä (@SamiMaatta@mementomori.social) viestistä. Viesti on lähetetty Aug 18, 2023, 08:49 ja sillä on 3 tykkäystä, 20 boostia ja 1 vastausta. Nyt olisi tarjolla isommat saappaat, sillä Saavutettavuuskirjasto Celia rekrytoi kehittämis- ja tietohallintojohtajaa! Hyppää suoraan hakuilmoitukseen: valtiolle.fi/fi-FI/ilmoitus?id. Toimisit tiimin päällikkönä ja näin olleen myös johtoryhmän jäsenenä. Päällikkön tehtävissä vastaisit digitalisaation ja tietohallinnon kehittämisestä ja ylläpidosta. Näiden lisäksi vastuullasi olisivat teknisen aineistotuotannon ja arkistoinnin kokonaisuudet. Celia tekee tiivistä yhteistyötä muiden pohjoismaisten sisarvirastojensa kanssa, joten valmius kansainväliseen yhteistyöhön ja hyvät verkostotaidot ovat arvostettuja taitoja! #ICT #saavutettavuus #rekrytointi" src="/img/R4evwn4zvE-1200.jpeg" width="1200" height="862"></picture> </figure> <p>Julkaisussa (19.8.2023) on</p> <ul> <li>3 tykkäystä</li> <li>20 boostausta</li> <li>1 kommentti.</li> </ul> <p>Kommentti oli minulta ja jaoin tietoa valtiolle hakemisesta.</p> <p>Koska Mastodonin viestivirta on kronologinen, niin todennäköisesti vielä jaan julkaisun itse uudelleen. Tällöin se näkyisi mahdollisesti vielä uudelle joukolle, jotka voivat jakaa sitä edelleen.</p> <h2 id="linked-in" tabindex="-1">LinkedIn</h2> <p>LinkedInissä julkaisu saa näkyvyyttä algoritmin ansiosta. En tiedä kovin tarkkaan, miten se toimii. Käsittääkseni julkaisu saa näkyvyyttä erityisesti silloin, kun sen kanssa vuorovaikutetaan tavalla tai toisella. Toki julkaisuaika myös vaikuttaa, minkälaiselle ryhmälle julkaisu tulee ensimmäisenä näkyviin.</p> <p>Reagoiminen ja kommentointi nostavat julkaisua muillekin kuin seuraajillesi. Uudelleenjakaminen toimii, kuten olettaisi: Julkaisu tulee näkyviin henkilön omalla seinällä.</p> <figure> <figcaption>Kuva 2. <a href="https://www.linkedin.com/posts/samimaat_kehitt%C3%A4mis-ja-tietohallintojohtaja-activity-7098178661702414336-0ue5?utm_source=share&utm_medium=member_desktop">Rekrytointijulkaisu LinkedInissä.</a></figcaption> <picture><source type="image/webp" srcset="/img/pBmCL4Q6LV-455.webp 455w"><img loading="lazy" decoding="async" alt="Kuvakaappaus LinkedInin analytiikkapuolelta, jossa on julkaisu Celian vapaasta kehittämis- ja tietohallintokohtajan paikasta. Julkaisulla on 177 'impressionia'. Sen kanssa on vuorovaikutettu reagoimalla 4 kertaa, siinä on yksi kommentti ja nolla uudelleenjakoa." src="/img/pBmCL4Q6LV-455.jpeg" width="455" height="638"></picture> </figure> <p>LinkedInin puolella voin tarkastella julkaisuun liittyviä tunnuslukuja tarkemmin. &quot;<span lang="en">Impressions</span>&quot; voisi kääntää &quot;kohtaamisiksi&quot;. Se kuvaa arviota siitä, kuinka monelle käyttäjälle julkaisu on tullut vastaan.</p> <p>Tilanne 19.8.2023:</p> <ul> <li>reagoitu 4 kertaa</li> <li>jaettu 0 kertaa</li> <li>kommentoitu yhdesti.</li> </ul> <p>Kommentin tein itse, kun jaoin myös tietoa valtiolle hakemisesta.</p> <h2 id="tulokset" tabindex="-1">Tulokset</h2> <p>Tulokset taulukoituna. Jätin oman kommenttini huomioimatta.</p> <div role="region" aria-labelledby="Caption01" tabindex="0"> <table> <caption id="caption01">Mastodonin ja LinkedInin vertailu</caption> <thead> <tr> <th></th> <th>Mastodon</th> <th>LinkedIn</th> </tr> </thead> <tbody> <tr> <th scope="row">Tykkäykset tai reagoinnit</th> <td>3</td> <td>4</td> </tr> <tr> <th scope="row">Uudelleenjaot</th> <td>20</td> <td>0</td> </tr> <tr> <th scope="row">Kommentit</th> <td>0</td> <td>0</td> </tr> <tr> <th scope="row">Kohtaamiset</th> <td>tyhjä</td> <td>177</td> </tr> <tr> <th scope="row">Seuraajien määrä</th> <td>192</td> <td>936</td> </tr> </tbody> </table> </div> <h2 id="johtopaatoksia" tabindex="-1">Johtopäätöksiä</h2> <ul> <li>Suurin ero selkeästi uudelleenjakojen määrässä. Mastodonissa julkaisua jaettiin ylivoimaisesti enemmän.</li> <li>LinkedInin puolella taas tykkäyksi ja reagointeja tuli enemmän kuin Mastodonissa, mutta ero on hyvin pieni. Toisaalta näiden kokonaismäärä on muutenkin pieni.</li> <li>LinkedInissä arvio kohtaamisista oli suhteellisen hyvä verrattuna tykkäyksien määrään. Mastodonissa minulla ei ole vastaavaa keinoa seurata kohtaamisia tai katselukertoja.</li> <li>Ero seuraajien määrissä on huima. Voisi todeta, että Mastodonissa saisi enemmän vastinetta 'rahalleen' kuin LinkedInissä.</li> </ul> <h2 id="selityksia-nakyvyyden-kannalta" tabindex="-1">Selityksiä näkyvyyden kannalta</h2> <p>Mastodonin ja Linkedinin kohderyhmät ja kulttuuri ovat hyvin erilaiset. Ne vaikuttavat olennaisesti näkyvyyteen ja pohdintaan siitä, että kummalla alustalla haluaa olla.</p> <h3 id="alustojen-kohderyhmat" tabindex="-1">Alustojen kohderyhmät</h3> <p>Voi myös kysyä, että ovatko Mastodon-buustaukset yhtä arvokkaita kuin LinkedInin tykkäykset? Kuinka todennäköistä on, että tässä tapauksessa tuleva kehittämis- ja hallintojohtaja on Mastodonissa ja vieläpä samoissa piireissä kuin minä? Sanotaan, että Mastodonia käyttävät edelleen pääasiassa &quot;IT-tyypit&quot;, joten ehkä tässä tapauksessa kohderyhmä onkin oikea.</p> <h3 id="mastodonissa-uudelleenjaetaan-herkemmin" tabindex="-1">Mastodonissa uudelleenjaetaan herkemmin</h3> <p>Mastodonin kulttuuriin kuuluu vahvemmin toisten julkaisujen buustaaminen, jos niiden haluaa näkyvän myös muille. Tämä osaltaan vaikuttaa siihen, että julkaisussa oli enemmän uudelleenjakoja kuin LinkedInissä.</p> <p>Toisaalta LinkedInissä käyttäjät tiedostavat, että reagointi riittää julkaisun esille tuloon myös muille. Mastodonissa tykkääminen ei aja samaa asiaa, joten sitä vastaavasti tehdään vähemmän.</p> <p>Pidän kuitenkin uudelleenjakoa, alustasta riippumatta, arvokkaimpana vuorovaikutuksena, koska se tuo oman julkaisun toisten nähtäville tehokkaimmin. Se myös vaatii hyvin tarkoituksenmukaista toimintaa eli itse uudelleenjakamisen. Lukija on todennut, että tämä kannattaa näyttää muillekin.</p> </content>
</entry>
<entry xml:lang="fi">
<title>Hakeminen valtiolle</title>
<link href="https://samimaatta.fi/kirjoitukset/hakeminen-valtiolle/"/>
<updated>2023-04-28T15:06:55Z</updated>
<id>https://samimaatta.fi/kirjoitukset/hakeminen-valtiolle/</id>
<content type="html"><p>Mastodonin puolella viime viikolla joku kyseli hakemisesta valtion virkoihin ja tähän jonkinlaista aloittelijan opasta. 😄</p> <p>Tässä olisi joitain tärppejä!</p> <h2 id="valtio-ei-ole-tyonantajana-yksi-yhteinainen-klontti" tabindex="-1">Valtio ei ole työnantajana yksi yhteinäinen klöntti.</h2> <p>Esimerkiksi etätyökäytännöt vaihtelevat paljonkin eri organisaatioiden välillä: Celialla on yksi läsnäpäivä viikossa, Verohallinnolla ei taida olla yhtään 'pakollista' päivää ja toisaalla voi olla useampi läsnäpäivä.</p> <p>Etätyökäytännöistä kannattaa kysellä hakuilmoituksen yhteyshenkilöltä. Myös erilaiset edut vaihtelevat organisaatioiden välillä.</p> <h2 id="paikan-hakeminen-ja-palkkaus" tabindex="-1">Paikan hakeminen ja palkkaus</h2> <p>Kaikki haut on keskitetty <a href="https://www.valtiolle.fi/fi-FI">valtiolle.fi -sivuille</a> ja hakuilmoituksissa ilmoitetaan pääsääntöisesti palkka. (Hurraa, palkka-avoimuus!)</p> <p>Yleensä palkka koostuu</p> <ul> <li>tehtävän vaativuudesta (peruspalkka)</li> <li>suoritukseen perustuvasta osasta (prosenttiosuus peruspalkan päälle), jota voidaan kutsua myös henkilökohtaiseksi osaksi.</li> </ul> <p>Aloittelevalle suoritusprosentti on monesti välillä 17-20. Omalla kohdallani tämä tarkastettiin puolen vuoden jälkeen ja sitä korotettiin.</p> <p><a href="https://www.linkedin.com/feed/update/urn:li:activity:7056956508017762304?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7056956508017762304%2C7057430217627230208%29&amp;dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287057430217627230208%2Curn%3Ali%3Aactivity%3A7056956508017762304%29">Johanna Koskela täsmensi kommentissaan (LinkedIn)</a>, että prosenttimäärät vaihtelevat organisaatioittain ja aiempi työkokemus voi vaikuttaa henkilökohtaiseen osaan parantavasti. Lisäksi &quot;vaativuustaso 8&quot; voi tarkoittaa aivan jotain muuta organisaatiosta toiseen.</p> <h2 id="paaseeko-valtiolle-toihin-sen-ulkopuolelta" tabindex="-1">Pääseekö valtiolle töihin sen ulkopuolelta?</h2> <p><a href="https://www.valtiokonttori.fi/uutinen/valtion-henkilostokertomus-2021-on-julkaistu/">Valtion henkilöstökertomuksen (Valtiokonttori, 2021)</a> mukaan noin 7 500 rekrytointia tehtiin valtion ulkopuolelta. En tiedä sinä vuonna kaikkien avoinna olevien paikkojen määrää, mutta näihin kaikkiin tuskin riittää valtion sisällä työntekijöitä.</p> <p>Kilpailua paikoista voi toki olla. Mutuiluni pohjalta suosittuja pestejä löytyy ministeriöiden viestinnästä ja HR-puolelta. (Tätä saa korjata, jos on parempaa tietoa.)</p> <p>Toisaalta voi olla todella erityisiäkin paikkoja, johon tarvitaan erikoista täsmäosaamista. Uskon, että tulevaisuudessa nämä tulevat lisääntymään. (Vink, vink: Esteettömyysdirektiivi synnyttää paljon uusia tehtäviä Liikenne- ja viesintäministeriöön.)</p> <h2 id="ikavin-puoli-hakemisessa" tabindex="-1">Ikävin puoli hakemisessa</h2> <p>Kun päätät hakea jotain paikkaa, niin kohtaat ikävimmän eli hakujärjestelmän <a href="https://www.valtiolle.fi/fi-FI">valtiolle.fi -sivustolla</a>. Hakemuksen tekeminen voi olla aikaavievä prosessi, jossa sinulta kysellään ummet ja lammet edellisestä kokemuksesta ja koulutuksesta.</p> <p>Hyvä puoli on että, kun sen kerran tekee, niin voit kopioida täyttämäsi hakemuksen toiseen hakuun helposti! (Kiitos tästä huomiosta <a href="https://www.linkedin.com/feed/update/urn:li:activity:7056956508017762304?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7056956508017762304%2C7056963116932186112%29&amp;dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287056963116932186112%2Curn%3Ali%3Aactivity%3A7056956508017762304%29">Anna Movallille (LinkedIn-kommentti)</a>)</p> <p>P.S. Jodelissa on kanava, jossa keskustellaan valtiosta työpaikkana ja avoimista työpaikoista todella avoimesti. Sitä kannattaa tsekkailla myös. 😁</p> </content>
</entry>
<entry xml:lang="fi">
<title>Pienryhmätyöskentely yliopiston matematiikassa</title>
<link href="https://samimaatta.fi/kirjoitukset/pienryhmatyoskentely-yliopiston-matematiikassa/"/>
<updated>2023-04-22T17:41:12Z</updated>
<id>https://samimaatta.fi/kirjoitukset/pienryhmatyoskentely-yliopiston-matematiikassa/</id>
<content type="html"><p>Oppimisen tuen foorumissa 2023 Valterin Tiina Sund käsittelu eriyttämistä. Esityksessä esiteltiin eriyttämisen &quot;asteita&quot;, jotka voivat rakentua toistensa varaan (1. pohjana, pyramidimäisesti):</p> <ol> <li>opetusjärjestelyt</li> <li>oppimisympäristö</li> <li>opetusmenetelmät</li> <li>oppimisen tukimateriaali</li> <li>oppimisen arviointi.</li> </ol> <p>Tehtävänä osallistujille oli pohtia, miten oli eriyttänyt jossain opetustilanteessaan. Opetusajastani on kulunut jo hiukan aikaa, mutta muistelen edelleen ylpeydellä, miten vedin matematiikan laskuharjoituksia Oulun yliopistossa.</p> <h2 id="omannakoista-opettamista" tabindex="-1">Omannäköistä opettamista</h2> <p>En erityisemmin pitänyt tavasta, jolla laskuharjoituksia vedettiin: Vetäjä kutsui vuorotellen halukkaita esittämään ja kirjoittamaan oman ratkaisunsa taululle. Tämän jälkeen laskuharjoitusten vetäjä kommentoi ratkaisua ja monesti korjasi kohtia tai kirjoitti niin sanotun oikean ratkaisun taululle.</p> <p>Minusta tähän tuhraantui liikaa aikaa, enkä pitänyt kaikkivaltias-roolista, jonka laskuharjoitusten vetäjä joutui omaksumaan. Se tuntui hyvin yksisuuntaiselta vuorovaikutukselta.</p> <p>Halusin siis tehdä asioita eri tavalla.</p> <p>Päätin että, kun opiskelija saapuu luokkaan hän jakautuu oman valintansa mukaan jompaan kumpaan ryhmään:</p> <ol> <li>Hän on tehnyt laskuharjoitukset ja haluaa tarkistaa vastauksensa.</li> <li>Hän on ei ole tehnyt laskuharjoituksia tai on tehnyt ne osittain ja haluaa työstää niitä vielä.</li> </ol> <p>Tämän lisäksi kannustin kummassakin ryhmässä olevia opiskelijoita menemään pienryhmiin ja keskustelemaan tekemistään ratkaisuista kysymysten avulla:</p> <ul> <li>Mikä tehtävä oli helppo? Miksi?</li> <li>Mikä tehtävä oli vaikea? Miksi?</li> <li>Miten tehtävän oli ratkaissut? Onko ratkaisu erilainen kuin muilla?</li> </ul> <p>Sitten kiertelin pienryhmien välillä kyselemässä, mistä ryhmissä oli keskusteltu ja millaisia ratkaisuja opiskelijat olivat tehneet. Jos koko pienryhmä oli jumissa jossain kohtaa, niin autoin heitä alkuun.</p> <p>Järjestely toimi hyvin, sillä</p> <ol> <li>pystyin tarkastamaan valmiiden opiskelijoiden ratkaisuja sillä aikaa, kun muut pienryhmät kävivät tehtäviä yhdessä läpi</li> <li>vuorovaikutus opiskelijoiden kanssa oli ensisijaisesti kaksisuuntaista.</li> </ol> <h2 id="opetusjarjestelyt-taydentavat-toisiaan" tabindex="-1">Opetusjärjestelyt täydentävät toisiaan</h2> <p>Muistan silti tuskailleeni siksi, että tein asioita eri tavalla kuin olin tottunut. &quot;Entä jos tämä on huonompi tapa opettaa?&quot; muistan miettineeni.</p> <p>Eräs ystäväni tokaisi: &quot;Eiköhän tuo sinulle ominaisempi tapa opettaa tuota parempia tuloksia kuin se, että yrität sopia johonkin muottiin.&quot;</p> <p>Mietin myös sitä, että joillekin opiskelijoille keskustelu ratkaisuista muiden kanssa voi olla monista syistä hankalaa, tai että nämä opiskelijat kokevat oppivansa parhaiten niin sanotusti perinteisellä tavalla.</p> <p>Täytyy kuitenkin muistaa, että en opettanut tyhjiössä, vaan opiskelijat kävivät myös kursseja, joissa opetus tehtiin perinteisemmin. Koin jälkikäteen, että olikin hyvä asia, että pidin näitä laskuharjoituksia juuri tällä tyylillä, koska nyt useammat tavat käsitellä tehtäviä voi auttaa pidemmässä juoksussa.</p> <p>Ratkaisujen esittämisessä korostuu esiintymisen taitojen harjoittelu. Pienryhmätyöskentelyssä korostuu kyky toimia ryhmässä ja käydä keskustelua omista ratkaisuistaan. Siis kaksi (minusta) erittäin tärkeää matemaatikon taitoa.</p> <p>Jos ne siis tehdään oikein...</p> <h2 id="parannettavaa-loytyy" tabindex="-1">Parannettavaa löytyy</h2> <p>Jälkikäteen ajateltuna minun olisi pitänyt panostaa enemmän ryhmäytymiseen ja pienryhmäkeskusteluun. Ei riitä, että opiskelijat laitetaan ryhmiin ja oletetaan, että homma toimii. Matemaattiseen keskusteluun ja yhteistyöhön täytyy myös oppia.</p> <p>Onneksi <a href="https://www.flexibility.fi/events/matemaattisen-keskustelukulttuurin-luominen/">Joustavaan matematiikkaan -täydennyskoulutuksessa on juuri keskusteluun keskittyvä moduuli</a>, jotta sinun ei tarvitse tehdä samaa mokaa.</p> <p>Joka tapauksessa olen tyytyväinen, että uskalsin vetää laskuharjoitukset omalla tavallani. Sitä pidettiin niinkin hyvänä, että eräs toinen laskuharjoitusten vetäjä otti käyttöön samanlaisen järjestelyn sinä vuonna.</p> </content>
</entry>
<entry xml:lang="fi">
<title>Tekoälynväläyksiä</title>
<link href="https://samimaatta.fi/kirjoitukset/tekoalynvalayksia/"/>
<updated>2023-03-19T18:03:45Z</updated>
<id>https://samimaatta.fi/kirjoitukset/tekoalynvalayksia/</id>
<content type="html"><p>No siis, mitä tekoäly edes on? Vaikuttaa siltä, että tähän ei tarvita vastausta, että sitä käytetään. Yhtä kiinnostava kysymys on, että mistä se muodostuu ja mistä &quot;se tulee&quot;.</p> <h2 id="vinoumat-ja-puoluepoliittisuus" tabindex="-1">Vinoumat ja puoluepoliittisuus</h2> <p>Vähän <span lang="en">mainstream<span>-keskustelua on käyty myös Chat<abbr lang="en" title="Generative Pre-trained Transformer">GPT</abbr>:n (tai minkä tahansa muunkaan niin sanotun tekoälyn) vinoutumisesta. Käsittääkseni tutkimuksen saralla se on kuitenkin tiedostettu ja paljonkin(?) tutkittu asia.</span></span></p> <p>Kävi esimerkiksi ilmi, että GPT-4 onkin demari. Tviitin kuvassa on vaalikoneen tulos.</p> <div class="eleventy-plugin-embed-twitter"><blockquote id="tweet-1636032739504783362" class="twitter-tweet"><a href="https://twitter.com/AJTanskanen/status/1636032739504783362"></a></blockquote></div><script src="https://platform.twitter.com/widgets.js" charset="utf-8" async></script> <p><a href="https://web.archive.org/web/20230319181105/https://twitter.com/AJTanskanen/status/1636032739504783362">Web.archive -linkki tviittiin</a>.</p> <p>No, tällaista johtopäätöstä ei voi tehdä pelkästään yhden casen perusteella, mutta se avaa oven asian pohtimiseen. Millaisia vinoumia tekoälyllä voi ylipäänsä olla? Pessimisti minussa myös sanoo, että ei ole mahdollista tehdä tekoälyä, jolla ei olisi ollenkaan vinoumia.</p> <p>Toisaalta emme myöskään odota, että ihmisillä ei olisi vinoumia, joten kuinka voimme odottaa, että (oletettavasti pääosin) ihmisten tuottamaan tekstiin nojaavalla ei olisi myöskään vinoumia?</p> <p>Olisipa keino selvittää, että millaisia vinoumia tekoälyllä on...</p> <h2 id="suljettu-lahdekoodi" tabindex="-1">Suljettu lähdekoodi</h2> <p><a href="https://cdn.openai.com/papers/gpt-4.pdf">GPT-4:n teknisen raportin (englanniksi, PDF)</a> mukaan niin sanottua harjoitusdataa (englanniksi &quot;<span lang="en">training data</span>&quot;) ei aiota julkistaa:</p> <figure> <blockquote lang="en" cite="https://cdn.openai.com/papers/gpt-4.pdf"><p> Given both the competitive landscape and the safety implications of large-scale models like GPT-4, this report contains no further details about the architecture (including model size), hardware, training compute, dataset construction, training method, or similar. </p></blockquote><figcaption lang="en">2 Scope and Limitations of this Technical Report, <span lang="fi">sivu 2.</span></figcaption> </figure> <p>Meillä ei siis ole hajuakaan, että millaista dataa tekoäly on ottanut sisälleen. Se taidetaan tietää, että malli perustuu netissä oleville teksteille ja syötteille, joita käyttäjät antavat ChatGPT:lle.</p> <h2 id="kaventaako-tekoaly-sisaltoja" tabindex="-1">Kaventaako tekoäly sisältöjä?</h2> <p>Koska tekoäly käyttää lähteinään tekstiä, joka on jo olemassa, niin voiko olla vaarana, että sisällöt ja tätä kautta ajattelu ylipäänsä kapenee?</p> <p>Kuvitellaan, että tekoälyn tekstit tulevat jossain vaiheessa täyttämään niin suuren osan sisällöistä, että näitä tekstejä aletaan käyttää harjoitusdatana. Tämän voisi ainakin kuvitella johtavan tilanteeseen, jossa tekoäly alkaa vain toisintaa itseään.</p> <p>Samalla, jos ihmiset käyttävät sitä sisältöjen tuottamiseen tai uuden luomiseen, niin mihin tämä johtaa? Voiko käydä niin, että uusien ja innovatiivisten ideoiden määrä vähenee?</p> <p>Vastapainona voi kai ajatella, että tekoälyn ja sisällön välissä on kuitenkin ihmisen vaikutus. Ehkä syötteet, joita ihmiset antavat johtavatkin kaventumisen sijaan avartumiseen. Tässä tapauksessa vain aika näyttää.</p> <h2 id="tekoaly-ja-omistajuus" tabindex="-1">Tekoäly ja omistajuus</h2> <p>Erityisesti kuvien tuottamisessa olen törmännyt tekijänoikeuskysymyksiin ja henkisen pääoman hyödyntämiseen. Kuvia tai taideteoksia on mahdollista pyytää jonkun tietyn taiteilijan tyylillä. Tekoälyn tuottama työ voi olla vaikea erottaa taitelijan varsinaisesti työstä. Eikä taitelijoilta itseltään ole kysytty, että saako heidän töitään käyttää lähdemateriaalina.</p> <p>Missä määrin sama voi päteä myös teksteihin? On mahdollista pyytää tekstiä esimerkiksi Shakespearen tyylillä, mutta onko tämä henkisen pääoman omimista? Missä määrin voidaan puhua plagioinnista? Sillä käytettävissään netin koko sisältö.</p> <h2 id="tekoalyn-rajallisuus" tabindex="-1">Tekoälyn rajallisuus</h2> <p>On kuitenkin muistettava, että tekoälyllä on käytössään <strong>vain</strong> netin koko sisältö. Todella paljon tekstejä, sisältöjä ja tietoa on netin ulkopuolella, jonne harjoitusdatat eivät ulotu. Tämäkin on siis yksi vinouman lähde: Millaista sisältöä tekoäly ei kykene edes tuottamaan?</p> <p>Etenkin asiaa voidaan miettiä Suomen kielen näkökulmasta. Millaisia tekstejä on saatavilla netissä suomeksi ja miten nämä tekstit vaikuttavat tekoälyn tuottamaan tekstiin?</p> <p>Tekoäly on myös riippuvainen ihmisestä, koska ihmisen täytyy olla luomassa sisältöä, jota se voi hyödyntää.</p> <h2 id="tekoalyn-kayttokohteet" tabindex="-1">Tekoälyn käyttökohteet</h2> <p><a href="https://news.microsoft.com/2023/03/16/introducing-microsoft-365-copilot-your-copilot-for-work/">Microsoft alkaa markkinoimaan <span lang="en">Office 365</span>-ohjelmistoissa toimivaa tekoälyä (englanniksi)</a>, joiden avulla voi esimerkiksi vetää yhteen ja tiivistää sähköposteja, kokouksia, kokouspöytäkirjoja ja niin edelleen. Kuulostaa siistiltä, eikö vain? Ainakin aluksi...</p> <p>Helsingin sanomat uutisoi, miten GPT-4 suoriutuu <abbr title="ylioppilas">YO</abbr>-kokeista ja suomenkielisen uutisartikkelin tiivistämisestä: <a href="https://www.hs.fi/talous/art-2000009454744.html?share=5807ca4b2206bdcb7e5a9e97cade866d">GPT:n uusi versio luo videopelin hetkessä ja kiteyttää laajat tieto­massat nopeasti, näin se on edeltäjäänsä parempi (hs.fi)</a>.</p> <p>Uutisartikkelin tiivistelmän suhteen GPT-4 teki jopa asiavirheitä, jotka vaikuttavat olennaisesti tekstin välittämään tietoon. Entä, kun ihmiset tekevät töitä tällaisten tietojen varassa, joissa on - sanotaanko - 2 % virheitä. Uskaltaako tällaiseen tietoon luottaa?</p> <p>Toisaalta teen työssäni itsekin tiivistelmiä ja poimin jatkon kannalta olennaisia kohtia kokousmuistiinpanoista. Kysymys kuuluukin, että miten paljon luotan edes omaan kykyyni tiivistää tekstiä tai poimia olennaisia asioita? Ja tämähän vielä riippuu vuorokaudenajasta!</p> <p>Olisinko siis valmis luottamaan tekoälyn tekemiin tiivistelmiin, vaikka niissä olisi 0-2 % virheitä verrattuna omiin aivoihini, joissa sama vaihteluväli voi olla 0-10 %? Mikä on siis virhemarginaali, jota kukin on valmis sietämään?</p> </content>
</entry>
<entry xml:lang="fi">
<title>Ruudunlukijan käyttö näkevälle</title>
<link href="https://samimaatta.fi/kirjoitukset/ruudunlukijan-kaytto-nakevalle/"/>
<updated>2023-03-12T17:53:27Z</updated>
<id>https://samimaatta.fi/kirjoitukset/ruudunlukijan-kaytto-nakevalle/</id>
<content type="html"><p>Kirjoituksessa käsitellään</p> <ul> <li>NVDA-ruudunlukijan peruskomennot</li> <li>asetukset näkevälle</li> <li>yleisimmät tavat navigoida verkkosivua</li> <li>hiukan asiaa saavutettavuudesta ja testaamisesta yleisesti</li> </ul> <p>Voit tarkistaa tekniset tiedot alta.</p> <details> <summary>Tekniset tiedot</summary> <ul> <li>Käyttöjärjestelmä: Windows 11</li> <li>Ruudunlukija: NVDA, versio 2022.2.3 </li> <li>Selain: Mozilla Firefox, versio 110.0.1</li></ul> </details> <p>Ohjeet sopivat hyvin aloittelevalle NVDA:n käyttäjälle. Jos et ole vielä ladannut NVDA-ruudunlukijaa, niin voit tehdä sen <a href="https://www.nvaccess.org/download/">NVDA:n sivuilta (englanniksi, nvaccess.org)</a>.</p> <h2 id="nvda-ruudunlukijan-kaynnistaminen-hiljentaminen-ja-sulkeminen" tabindex="-1">NVDA-ruudunlukijan käynnistäminen, hiljentäminen ja sulkeminen</h2> <p>Ensimmäisenä käynnistetään NVDA. Teen tämän Windows-koneella, ja käytän Windows-näppäintä <kdb>Win</kdb>. Kirjoitan hakuun &quot;NVDA&quot; ja avaan sen.</p> <p>NVDA alkaa välittömästi puhua, kun ohjelma käynnistyy, mutta älä anna sen häiritä.</p> <h3 id="ensiasetukset" tabindex="-1">Ensiasetukset</h3> <p>Muutetaan ensiasetukset. Valitsen, että</p> <ol> <li>käytän kannettavaa</li> <li>käytän <kdb>Caps Lock</kdb>-näppäintä <kdb>NVDA</kdb>-näppäimenä</li> </ol> <p>Sen jälkeen ollaan valmiita.</p> <h3 id="hiljentaminen" tabindex="-1">Hiljentäminen</h3> <p>Hiljennetään NVDA pikanäppäimillä <kdb>NVDA</kdb> + <kdb>S</kdb>. Ensimmäisellä kerralla painaessa puhe hiljentyy, toisella käynnistyvät merkkiäänet ja kolmannella puhe tulee takaisin päälle.</p> <h3 id="sulkeminen" tabindex="-1">Sulkeminen</h3> <p>NVDA:n voi sulkea pikanäppäimillä <kdb>NVDA</kdb> + <kdb>Q</kdb>.</p> <h2 id="asetukset-nakevalle-kohdistus-ja-puheen-tarkastelu" tabindex="-1">Asetukset näkevälle (kohdistus ja puheen tarkastelu)</h2> <p>Asetetaan seuraavaksi asetukset, jotka helpottavat käyttöä näkevälle.</p> <p>Voit avata NVDA-valikon työkaluriviltä oikealla klikkauksella NVDA-kuvakkeesta tai käyttämällä <kdb>NVDA</kdb> + <kdb>N</kdb> -pikanäppäimiä.</p> <ol> <li>Siirrytään asetuksiin ja sen jälkeen kohtaan &quot;näkö&quot;.</li> <li>Laitetaan kaikki kohdistukset päälle.</li> </ol> <p>Huomaa, että kohdistus ei toimi aivan kuten olettaisi. Etenkin nettisivua vierittäessä kohdistus voi hypätä outoihin paikkoihin. Se kuitenkin antaa hyvin suuntaa, jos navigoinnissa on aivan hukassa.</p> <p>Seuraavaksi voit myös panna puheen tarkastelun päälle, jos haluat kuuntelemisen sijaan nähdä, mitä ruudunlukija sanoisi. Avaa taas valikko <kdb>NVDA</kdb> + <kdb>N</kdb> -pikanäppäimillä.</p> <ol> <li>Siirry kohtaan &quot;työkalut&quot;.</li> <li>Sitten kohtaan &quot;puheen tarkastelu&quot;.</li> </ol> <p>Tämä avaa ikkunan, joka nyt seuraa, missä navigoit NVDA:n avulla.</p> <h2 id="yleisimmat-tavat-liikkua-nettisivuilla" tabindex="-1">Yleisimmät tavat liikkua nettisivuilla</h2> <p>Nyt, kun perusasetukset ovat päällä, niin voimme harjoitella nettisivuilla liikkumista NVDA:n avulla. Ennen sitä tutustutaan kuitenkin <a href="https://www.eficode.com/fi/blog/ruudunlukijakayttajien-aani-kuuluviin">Eficoden, Näkövammaisten liiton ja Annanpurnan teettämään verkkokyselyyn</a>, josta käy ilmi, mitkä ovat yleisimpiä tapoja liikkua nettisivuilla ruudunlukijan avulla:</p> <ol> <li>Otsikoittain (46,7 %)</li> <li>Hakukentän avulla (28,4 %)</li> <li>Lukemalla sivu läpi (11,7 %)</li> <li>Linkkien avulla (9,1 %)</li> </ol> <h3 id="1-otsikoittain-liikkuminen" tabindex="-1">1. Otsikoittain liikkuminen</h3> <p>Yleisin tapa liikkua oli otsikkotasojen avulla. Otsikoittain liikkumisessa on oikeastaan kaksi eri tapaa:</p> <ol> <li>Kaikkien otsikoitten läpi <kdb>H</kdb>-näppäimellä.</li> <li>Tietyn tasoisten otsikoittein läpi numeronäppäimillä <kdb>1</kdb>, <kdb>2</kdb>, <kdb>3</kdb>, <kdb>4</kdb> ja niin edelleen.</li> </ol> <p>Kokeillaan ensin <kdb>H</kdb>-näppäintä. Siirry sen avulla otsikkotasojen kautta viimeiseen otsikkoon sivulla.</p> <p>Entä sitten, kun ollaan sivun alalaidassa? Miltei kaikissa pikanäppäimissä <kdb>vaihto</kdb>-näppäimen käyttö antaa kulkea takaperin nettisivulla.</p> <p>Nyt <kdb>vaihto</kdb> + <kdb>H</kdb> -pikanäppäimillä voidaan siis siirtyä edelliseen otsikkoon aina ylös asti.</p> <p>Toinen tapa liikkua otsikoittain on käyttää numeronäppäimiä, jolloin siirrymme otsikoittain aina tietyn tasoisen otsikon kautta. Numeronäppäin <kdb>1</kdb> siirtää meidät otsikkotason 1 otsikoista toiseen (niitä on tosin nettisivuilla yleensä vain yksi). Numeronäppäin <kdb>2</kdb> siirtää meitä otsikkotasojen 2 otsikoiden välillä.</p> <p>Näidenkin kohdalla <kdb>vaihto</kdb> + <kdb>numeronäppäin</kdb> mahdollistaa liikkumisen takaperin samoilla otsikkotasoilla.</p> <p>Otsikkotasojen läpi liikkuminen antaa nopeasti hyvän kuvan nettisivujen rakenteesta - jos siis otsikointi on tehty oikein. Näissä esimerkeissä niin on tehty.</p> <h3 id="2-hakukentan-avulla" tabindex="-1">2. Hakukentän avulla</h3> <p>Toiseksi yleisin tapa oli hakukentän avulla. Hakukenttä ei ole ruudunlukijan ominaisuus, mutta jos nettisivuilla on sellainen, niin voimme liikkua siihen <kdb>sarkain</kdb>-näppäimen avulla. Sarkain liikkuu myös kaikenlaisten linkkien ja painikkeiden kautta.</p> <p>Samalla tavalla <kdb>vaihto</kdb> + <kdb>sarkain</kdb> -pikanäppäimillä voidaan liikkua myös takaperin.</p> <p>Tärkeä huomio on, että hakukenttä kannattaa sisällyttää nettisivuille, jos siihen voi vaikuttaa.</p> <h3 id="3-lukemalla-sivun-lapi" tabindex="-1">3. Lukemalla sivun läpi</h3> <p>Kolmanneksi yleisin tapa oli lukea koko sivu läpi. Tähän on useampi eri vaihtoehto.</p> <ol> <li>Voit siirtyä haluamallesi nettisivulle ja käynnistää sen auki ollessa NVDA:n. Yleensä NVDA alkaa lukea kyseistä sivua alusta asti.</li> <li>Monilla sivuilla on “Hyppää sisältöön” -linkki, joka on piilotettu näkyvistä, mutta se löytyy <kdb>sarkaimen</kdb> avulla. Yleensä kulkemalla <kdb>sarkaimella</kdb> taaksepäin tämä linkki löytyy. Painamalla linkkiä päästään suoraan tekstisisältöön ja se voidaan lukea.</li> <li>Jos haluaa edetä nettisivuilla nopeammin, niin voidaan käyttää <kdb>nuolinäppäimiä</kdb>, jolloin NVDA pomppii osiosta toiseen. Tekstissä se liikkuu aina muutaman sanan eteenpäin. <kdb>Nuoli alaspäin</kdb> siirrytään sivua alemmas ja <kdb>nuoli ylöspäin</kdb> siirrytään sivua ylöspäin.</li> <li>Käyttämällä <kdb>Ctrl</kdb> + <kdb>nuolinäppäimet</kdb> siirrytään isompia osioita kerrallaan. Esimerkiksi otsikosta kappaleeseen ja kappaleesta toiseen. Tämä on nopeampi tapa liikkua tekstissä kuin edellinen.</li> <li>Kohdassa, jossa haluaa, että luenta vain jatkuu, niin voi painaa <kdb>NVDA</kdb> + <kdb>A</kdb> -pikanäppäimiä, jolloin alkaa &quot;jatkuva luenta&quot;. Tämän voi tauottaa painamalla kerran <kdb>vaihto</kdb>-näppäintä. Puheen voi käynnistää uudelleen samasta kohdasta painamalla uudestaan <kdb>vaihto</kdb>-näppäintä. Puheen voi keskeyttää kokonaan <kdb><abbr title="Control">Ctrl</abbr></kdb> -näppäimellä, jolloin pitää liikkua uudestaan kohtaan, josta haluaa puheen jatkuvan.</li> </ol> <h3 id="4-linkkien-kautta-liikkuminen" tabindex="-1">4. Linkkien kautta liikkuminen</h3> <p>Neljänneksi yleisin tapa liikkkua nettisivuilla on linkkien kautta. Se tapahtuu <kdb>K</kdb>-näppäimellä ja taaksepäin voi liikkua <kdb>vaihto</kdb> + <kdb>K</kdb> -pikanäppäimillä.</p> <p>Tästä huomataan, miksi linkit kannattaa nimetä ymmärrettävällä tavalla, koska muuten saisimme listan “lue lisää”, “lue lisää” -linkkejä, joiden päämäärästä ei tiedetä mitään ilman kontekstia.</p> <h2 id="perusopit-hallussa-lisaopiskelua-nvda-n-ohjeista" tabindex="-1">Perusopit hallussa! Lisäopiskelua NVDA:n ohjeista</h2> <p>Nyt osaat jo käyttää NVDA:ta nettisivuilla liikkumiseen. Voit tutustua muihin komentoihin NVDA:n valikosta <kdb>NVDA</kdb> + <kdb>N</kdb> -pikanäppäimillä, valitsemalla &quot;ohje&quot; ja &quot;käyttöohje&quot; tai &quot;komentojen pikaopas&quot;.</p> <p>Tästä eteenpäin kannattaa opetella NVDA:n käytöstä lisää sen mukaan millaisia tarpeita tulee vastaan.</p> <h2 id="saavutettavuus-ruudunlukijan-nakokulmasta" tabindex="-1">Saavutettavuus ruudunlukijan näkökulmasta</h2> <p>Muista, että vaikka käyttäisit ruudunlukijaa nettisivujesi testaamiseen, niin se ei täysin vastaa ruudunlukijan käyttäjää, joka käyttää ruudunlukijaa joka päivä. Testauta siis nettisivujasi oikeilla käyttäjillä.</p> <p><a href="https://webaim.org/projects/screenreadersurvey9/#disabilitytypes">WebAIMin ruudunlukijakyselyssä (2021)</a> 79,5 prosenttia vastaajista kertoi, että he ovat sokeita. Kaikki ruudunlukijan käyttäjät eivät siis ole sokeita. Siksi kannattaakin miettiä, että jos saavutettavuutta lähestyy pelkästään sokean ruudunlukijakäyttäjän näkökulmasta, niin keitä muita jättää ulkopuolelle? (Nostin tämän näkökulman <a href="https://adrianroselli.com/2017/02/not-all-screen-reader-users-are-blind.html">Adrian Rosellin kirjoituksen perusteella (englanniksi)</a>.)</p> <p>Saavutettavuus voidaan nykyään myös nähdä listana teknisiä vaatimuksia, kuten saavutettavuusvaatimukset, mutta edes ne eivät takaa, että nettisivut olisivat helppoja käyttää. Tämä kannattaa muistaa, kun suunnittelee omia nettisivujaan tai sisältöjään.</p> <h2 id="liity-odotuslistalle" tabindex="-1">Liity odotuslistalle!</h2> <p>Aion tehdä tämän kirjoituksen pohjalta myös ohjevideon. Ajattelin tehdä maksullisen videon, jonka voisi ostaa esimerkiksi oman työnsä tueksi omaan käyttöön tai koko organisaation käyttöön.</p> <p>Voit liittyä odotuslistalle, joka ei velvoita sinua mihinkään. Ilmoitan listan kautta, kun video on valmis ja voit siinä vaiheessa päättää haluaisitko ostaa videon alennettuu hintaan.</p> <p><a href="https://forms.gle/RnG5FJKji4MyJCCx5">Liity odotuslistalle tästä.</a></p> </content>
</entry>
<entry xml:lang="fi">
<title>Tuhansien prosenttien puhallus</title>
<link href="https://samimaatta.fi/kirjoitukset/tuhansien-prosenttien-puhallus/"/>
<updated>2023-01-03T09:37:46Z</updated>
<id>https://samimaatta.fi/kirjoitukset/tuhansien-prosenttien-puhallus/</id>
<content type="html"><p>Kirjoituksen tarkoitus ei ole nostaa ketään henkilöä tikunnokkaan. Nostan esiin arjessa käyttämäämme (paikoin epätarkkaa) kieltä. Tähän syyllistyvät itse kukin: Minä, sinä, tai kuka tahansa muu.</p> <p>Jos pidämme ymmärrettävää keskustelua tärkeänä, niin tämä on minun tapani kantaa korteni kekoon sen vuoksi.</p> <h2 id="lahde" tabindex="-1">Lähde</h2> <p>Yle julkaisi jutun, jossa taiteilija kertoo, kuinka <a href="https://yle.fi/a/74-20010728">tekoäly on lyhentänyt hänen työaikaansa tuhansia tunteja</a>. Voit hetken miettiä, että mikä otsikoinnissa on väärin.</p> <h2 id="korjaus" tabindex="-1">Korjaus</h2> <p>Jonkin vähentyminen &quot;tuhansia prosentteja&quot; ei ole mahdollista.</p> <p>Mietitäänpä: Jos työtuntien määrä olisi ollut 200 tuntia, niin 25 prosentin vähentyminen tarkoittaisi, että työtunteja olisi vähennyksen jälkeen </p><div class="displaymath" aria-hidden="true">$200 \ \mathrm{h} \cdot (1 - 0{,}25) = 200 \ \mathrm{h} \cdot 0{,}75 = 150 \ \mathrm{h}\text{.}$</div> <span class="sr-only">200 h *(1 -0,25) =200 h *0,75 = 150 h.</span> Siis hänellä olisi 150 tuntia työtä ja tekoäly olisi säästänyt 50 tuntia.<p></p> <p>50 prosentin vähentyminen tarkoittaisi, että työtunteja olisi vähennyksen jälkeen </p><div class="displaymath" aria-hidden="true"> $200 \ \mathrm{h} \cdot (1 - 0{,}50) = 200 \ \mathrm{h} \cdot 0{,}50 = 100 \ \mathrm{h}\text{.}$</div> <span class="sr-only">200 h *(1 -0,50) =200 h *0,50 = 100 h.</span> Siis hänellä olisi 100 tuntia työtä ja tekoäly olisi säästänyt 100 tuntia eli puolet.<p></p> <p>Varmaankin nähdään, että mihin ollaan menossa, joten hyppään suoraan 100 prosenttiin:</p> <p>Jos työaikaa säästyisi 100 prosenttia, niin työtunteja olisi jäljellä </p><div class="displaymath" aria-hidden="true"> $200 \ \mathrm{h} \cdot (1 - 1) = 200 \ \mathrm{h} \cdot 0 = 0 \ \mathrm{h}\text{.}$</div> <span class="sr-only">200 h *(1 -1) =200 h *0 = 0 h.</span> Siis hänellä olisi 0 tuntia työtä eli ei yhtään ja tekoäly olisi säästänyt 200 tuntia eli koko työajan.<p></p> <p>Ei ole siis mielekästä sanoa, että työaikaa säästyisi &quot;tuhansia prosentteja&quot;, koska työaikaa voi säästyä enintään 100 prosenttia. Tämä tarkoittaa, että koko työaika on säästynyt.</p> <h2 id="enta-jos" tabindex="-1">Entä jos?</h2> <p>Mitä tarkoittaisi, jos työaikaa voisikin säästyä yli 100 prosenttia?</p> </content>
</entry>
<entry xml:lang="fi">
<title>Luokkaloikkari! Millainen on suhteesi rahaan?</title>
<link href="https://samimaatta.fi/kirjoitukset/luokkaloikkari-millainen-on-suhteesi-rahaan/"/>
<updated>2022-12-09T20:28:38Z</updated>
<id>https://samimaatta.fi/kirjoitukset/luokkaloikkari-millainen-on-suhteesi-rahaan/</id>
<content type="html"><p>Myönnettäköön, että luokkaloikkaruus ei liity asiaan täysin, mutta joku muukin voi tunnistaa ilmiön: Rahasta ei juurikaan puhuttu lapsuudessa. Minulla ei ollut hajuakaan mihin sitä käytettiin, paljonko sitä oli tai mitä sillä oli tarkoitus tehdä. Millainen suhde minulle pitäisi olla rahaan?</p> <p>Innoituksen tähän postaukseen sain <a href="https://www.instagram.com/growth.forum/"><span lang="en">Growth Forum</span>'in (Instagram)</a> järjestämässä tilaisuudessa. Järjestäjäporukassa on muun muassa mukana <a href="https://www.linkedin.com/in/jonnamaatta/">Jonna Määttä (LinkedIn)</a>! Kiitos kiinnostavasta tilaisuudesta. 😄</p> <p>Tilaisuudessa <a href="https://www.linkedin.com/in/pirjo-v%C3%A4%C3%A4n%C3%A4nen-56b8b4139/">Pirjo Väänänen (LinkedIn)</a> puhui rahasta ja tavoista suhtautua siihen. Voit itsekin miettiä, että herättääkö rahan miettiminen sinussa ahdistusta, iloa vai oletko neutraali? Mitä se kertoo suhteestasi rahaan? Miten se on muotoutunut?</p> <p>Olen miettinyt rahaa suhteessa yrittäjyyteen, joka kiinnostaisi minua, mutta en ole onnistunut etenemään siinä (monesta (teko)syystä).</p> <h2 id="minun-suhteeni-rahaan" tabindex="-1">Minun suhteeni rahaan</h2> <p>Ensinnäkin olen saanut käsityksen, että rahan pyytäminen olisi epäkohteliasta. Kaikki palvelu, josta voisi pyytää rahaa raamitetaan auttamiseksi. Rahan pyytäminen likaa sen. En nytkään osaa erotella, missä vaiheessa minun olisi jopa kohtuullista pyytää palkkiota tekemästäni. Raja ei ole ikinä ollut selkeä. Järjestin <a href="/blog/luokkaloikkarit-kirjoituksista-webinaariin/">Luokkaloikkarit-webinaarinkin</a> hartiavoimin, vaikka koin epämukavuutta, kun kaksi puhujaa tulivat ilmaiseksi paikalle.</p> <p>Huomaan ajattelevani, että on ihmisiä, jotka pitävät rahallista palkkiota miltei mistä vain työstä kohtuullisena. Tämänkään ajatuksen alkuperää en osaa osoittaa. Miten eri tavalla suhtautuisin rahaan, jos puiden halkomisesta tai ruohonleikkuusta olisi maksettukin? Nythän palkkiota on pelottava pyytää, koska syyllistyisin varmaan veropetokseen, sillä en ymmärrä, mitä kaikkea siihen liittyy! On siis turvallisempaa vain tehdä työ työn tekemisen ilosta.</p> <p>Toiseksi olen saanut käsityksen, että rahaa saa töistä työnantajalta. On tärkeämpää tehdä ihan mitä vain työtä, ja pitää siitä kiinni, koska muualta rahaa ei tule. Raha saadaan palkkana työnantajalta, eikä muita reittejä ole tai niistä ei puhuta - tai niistä ei yksinkertaisesti tiedetä.</p> <h2 id="tulotason-kasvu-ja-henkilokohtainen-taloudenhallinta" tabindex="-1">Tulotason kasvu ja henkilökohtainen taloudenhallinta</h2> <p>Ennen olin pienituloinen opiskelija. Nyt olen suurituloinen. Ainakin sen määritelmän mukaan, joka oli Ilta-Sanomissa:</p> <figure> <blockquote><p>“Jos puolestaan käteesi jää yli 2 792 euroa kuukaudessa, olet selvästi suurituloinen, ja 80 prosenttia tienaa Suomessa sinua vähemmän.”</p></blockquote> <figcaption> <cite><a href="https://www.is.fi/taloussanomat/art-2000009063648.html">Kuinka moni on pieni­tuloinen asuinalueellasi?</a></cite>, Ilta-Sanomat </figcaption></figure> <p>Tämä asettaa kyllä omat raha-asiat aivan erilaisiin raameihin. Vaikka elintason nousun myötä välillä tuntuukin siltä, että suurta muutosta ei ole tapahtunut.</p> <p>Samassa suhteessa nousee siis stressi rahan riittävyydestä, vaikka tosiasiassa absoluuttiset menot ovat vain kasvaneet, eivätkä välttämättä suhteelliset. Opiskelijana olin tyytyväinen, että minulla jäi 50 euroa ‘säästöön’. (Siis säästöähän se ei oikeasti ollut, koska otin opintolainaa.) Nykyään hirvittää, jos en saa säästöön useampia satasia. Aivan mieletöntä.</p> <p>Rahanhallinta on myös ihan toisenlaista. Opiskelijana pystyin miettimään, että teen yhden isomman ostoksen kuukaudessa tai sitten minulla on varaa ostaa kalliimpi opiskelijalounas viisi kertaa. Paljon yksinkertaisempaa ja omat talouden rajat olivat todella selkeät. Nyt isompia ostoksia voi tehdä useamman kuukaudessa ja ulkona syöminen (tai siis Woltin kautta tilaaminen) on lisääntynyt huomattavasti. On siis vaikeampi pitää mielessä, mihin sitä onkaan tullut käytettyä rahaa ja kuinka suuren osan taloudesta se nyt kattaakaan.</p> <h2 id="matemaatikko-rahan-hallitsijana" tabindex="-1">Matemaatikko rahan hallitsijana</h2> <p>Tunnen häpeää, että matemaatikkona taloudenhallinta ei olekaan itsestäänselvyys. Muistan, kuinka kauppatieteiden opiskelijat miettivät, että eräs matematiikan luennoitsija on varmaan miljonääri, koska hän on matemaatikko. Paineita suoriutua siis on. Pitkässä matematiikassa sitä ei ollut lainkaan (minun aikanani), eikä varsinkaan yliopistossa. Ainoa kosketukseni talousmatematiikkaan on tullut, kun pidin laskuharjoituksia kauppatieteilijöille. Silloinkin sisältö oli hyvin teoreettista ja tilanteet keksittyjä. Ei siis juurikaan tosimaailmaan liittyviä ongelmia.</p> <p>Talous ja raha ovat siis varsin toissijaisia asioita matematiikassa. Varmaankin “liian yksinkertaisia”, mutta siltä se ei tunnu - ja siitä koko asia johtuukin. Kasvatus ja rahaan liittyvä suhde eivät ole toissijaisia, kun omaa taloutta ja omaa rahaa käsitellään.</p> <p>Olen onnellisessa asemassa, että rahan menoa ei tarvitse aivan oikeasti seurata. Tällä mennessä riittänyt OP:n “talouden tasapaino” -näkymän seuraaminen ja toteaminen, että tulot ovat kuitenkin olleet suuremmat kuin menot joka kuukausi. Oikeasti suunnitelmallinen lähestymistapa rahojen käyttöön on puuttunut. Kuvittelen, että ‘rahoissa kasvanut’ ymmärtää jotain perustavanlaatuista eri tavalla kuin minä ja osaa siksi käyttää varojaan järkevämmin.</p> <h2 id="miten-vakuutukset-toimivat" tabindex="-1">Miten vakuutukset toimivat?</h2> <p>Vakuutusten käyttö on minulle myös aivan tuntematonta. En osaa miettiä asiaa siltä kannalta, että miten vakuutus olisi hyödyllinen minulle. On ollut varmasti tilanteita, joissa olisin voinut käyttää vakuutustani, mutta tilanteessa en ole tajunnut tehdä sitä. Muutenkin vakuutusviidakko vaikuttaa oudolta - ehkä juuri siksi, että sen on oppinut hyväksymään vain asiana, joka otetaan. Sen verran olen ymmärtänyt, että monille sairausvakuutuksen ottaminen on itsestäänselvää, kun taas itse sen ajattelee olevan luksusta, johon ei tarvitsisi turvautua. Onhan meillä julkinenkin terveydenhuolto.</p> <p>Luokkaloikkaamisen vuoksi oma etuoikeus täytyy tunnistaa ja takaraivossa paukuttaa tuttu sävel: “Onpa naurettava ongelma. Ihanko oikeasti vaivaat päätäsi tällaisella? Olisit tyytyväinen, kun saat ruokaa pöytään ja jää ylimääräistäkin.” Ehkä tämä on tätä kahden maailman välissä elämistä. Minulle se on silti todellisuutta yhtä kaikki.</p> <p>Entä sinä? Miten sinä olet ratkaissut taloudenhallintasi?</p> </content>
</entry>
<entry xml:lang="en">
<title>Getting Tailwind to work with Eleventy</title>
<link href="https://samimaatta.fi/en/getting-tailwind-to-work-with-eleventy/"/>
<updated>2022-11-06T20:30:43Z</updated>
<id>https://samimaatta.fi/en/getting-tailwind-to-work-with-eleventy/</id>
<content type="html"><p>I was so frustrated with Tailwind and Eleventy, because I wanted to get it working, and it just didn't! I couldn't understand why.</p> <h2 id="my-steps-to-get-tailwind-to-work" tabindex="-1">My steps to get Tailwind to work</h2> <p>I followed <a href="https://www.youtube.com/watch?v=VcW3T9EOo5M&amp;t=551s">Thirus's Youtube tutorial</a> for this.</p> <ol> <li>Install Eleventy normally.</li> <li>Install tailwindcss, postcss and autoprefixer with the command <code>npm install -D tailwindcss postcss autoprefixer</code>. <ul> <li>Because I was using a framework like Eleventy, I had to use postcss and autoprefixer.</li> </ul> </li> <li>Create config files for <code>tailwindcss</code> and <code>postcss</code>:</li> </ol> <p><code>tailwindcss</code>:</p> <pre class="language-js"><code class="language-js"><span class="token comment">/** @type {import('tailwindcss').Config} */</span><br>module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span><br> <span class="token literal-property property">content</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"./public/**/*.{html,js}"</span><span class="token punctuation">]</span><span class="token punctuation">,</span><br> <span class="token literal-property property">theme</span><span class="token operator">:</span> <span class="token punctuation">{</span><br> <span class="token literal-property property">extend</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">,</span><br> <span class="token punctuation">}</span><span class="token punctuation">,</span><br> <span class="token literal-property property">plugins</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span><br><span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre> <p>(I'm not sure if the content should really be from the <code>/public/</code> folder, but let it be for now. It works!)</p> <p><code>postcss</code>:</p> <pre class="language-js"><code class="language-js">module<span class="token punctuation">.</span>exports <span class="token operator">=</span> <span class="token punctuation">{</span><br> <span class="token literal-property property">plugins</span><span class="token operator">:</span> <span class="token punctuation">{</span><br> <span class="token literal-property property">tailwindcss</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">,</span><br> <span class="token literal-property property">autoprefixer</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">,</span><br> <span class="token punctuation">}</span><span class="token punctuation">,</span><br><span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre> <ol start="4"> <li>Include Tailwind's components in the css file:</li> </ol> <pre class="language-css"><code class="language-css"><span class="token atrule"><span class="token rule">@tailwind</span> base<span class="token punctuation">;</span></span><br><span class="token atrule"><span class="token rule">@tailwind</span> components<span class="token punctuation">;</span></span><br><span class="token atrule"><span class="token rule">@tailwind</span> utilities<span class="token punctuation">;</span></span></code></pre> <ol> <li>Reference the stylesheet as usual in the layout file and add <code>tailwind.config.js</code> as a watch target to <code>.eleventy.js</code>:</li> </ol> <pre class="language-js"><code class="language-js">eleventyConfig<span class="token punctuation">.</span><span class="token function">addWatchTarget</span><span class="token punctuation">(</span><span class="token string">"tailwind.config.js"</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> <ol start="6"> <li>(Now is the important step!) Get Tailwind running in the terminal. The problem for me was that I didn't understand how to get Eleventy and Tailwind to run at the same time. Thirus showed in the video that it's possible by opening two terminals... 🙃 Which I didn't even realize was possible... So, run Eleventy with <code>npm start</code> (or whatever is in your <code>package.json</code>) and open a second terminal and run <code>npx tailwindcss -i ./src/styles/style.css -o ./public/styles/style.css --watch</code>. <ul> <li>Notice that the <code>-i</code> means the input file, so use yours! Also <code>-o</code> means output file.</li> <li>Also note that your layout file should reference that output file!</li> </ul> </li> </ol> <p>And that got it working for me.</p> <p>It took such a long time... Now I can actually get started with my project.</p> <h2 id="problems-didn-t-end-there" tabindex="-1">Problems didn't end there</h2> <p>I couldn't run <code>npx @11ty/eleventy --serve</code> and <code>npx tailwindcss -i ./src/styles/style.css -o ./public/styles/style.css --watch</code> at the same time to do proper development, so I had to figure it out.</p> <p>I found out two ways!</p> <ol> <li>Use Git Bash and run <code>&quot;npx tailwindcss -i ./src/styles/style.css -o ./public/styles/style.css --watch &amp;&amp; npx @11ty/eleventy --serve&quot;</code>. The order is paramount! It didn't work with running Eleventy first.</li> <li>I installed <a href="https://www.npmjs.com/package/concurrently">Concurrently (npm)</a> and used the command <code>&quot;dev&quot;: &quot;concurrently \&quot;npx tailwindcss -i ./src/styles/style.css -o ./public/styles/style.css --watch\&quot; \&quot;npx @11ty/eleventy --serve\&quot;&quot;</code>. Here the order is also important.</li> </ol> <h2 id="bugs-that-persisted" tabindex="-1">Bugs that persisted</h2> <p>I wanted to run them concurrently, because Tailwind would sometimes break. Hopefully this fixes that.</p> <p>It didn't, but I fixed it later.</p> <h2 id="i-fixed-it" tabindex="-1">I fixed it!</h2> <p>Problem was that I was using <code>npx tailwindcss -i ./src/styles/style.css -o ./public/styles/style.css --watch</code> thus outputting the CSS straight to public. This made it so that Eleventy was building the site content first and then outputting it to <code>public</code>, which didn't have the CSS file at first.</p> <p>I fixed it by changing it to <code>npx tailwindcss -i ./src/styles/style.css -o ./src/styles/tailwind.css --watch</code>. I named it &quot;tailwind.css&quot;, so it wouldn't override the setup CSS file. This way Tailwind builds the CSS file and Eleventy then builds uses that in the output.</p> <p>This also meant changing the stylesheet linking in my <code>base.njk</code> layout: <code>&lt;link rel=&quot;stylesheet&quot; href=&quot;./styles/tailwind.css&quot; /&gt;</code>.</p> <p>I also added the new <code>addWatchTarget</code>s, so Eleventy checks for the CSS changes:</p> <pre class="language-js"><code class="language-js">eleventyConfig<span class="token punctuation">.</span><span class="token function">addWatchTarget</span><span class="token punctuation">(</span><span class="token string">"./public/**/*/*.css"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br>eleventyConfig<span class="token punctuation">.</span><span class="token function">addWatchTarget</span><span class="token punctuation">(</span><span class="token string">"./src/**/*/*.css"</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> <p>Now the persisting problem is that these watch targets seem to cause lots of rebuilding. I have to look into that too...</p> <h2 id="further-modifications" tabindex="-1">Further modifications</h2> <p>I figured that the rebuiding issue stems from overlapping <code>watch</code> commands, so I streamlined what's in my <code>.eleventy.js</code>:</p> <pre class="language-js"><code class="language-js">eleventyConfig<span class="token punctuation">.</span><span class="token function">addPassthroughCopy</span><span class="token punctuation">(</span><span class="token string">"./src/**/*/tailwind.css"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br>eleventyConfig<span class="token punctuation">.</span><span class="token function">addPassthroughCopy</span><span class="token punctuation">(</span><span class="token string">"./src/images/**/*.{png, jpeg}"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><br>eleventyConfig<span class="token punctuation">.</span><span class="token function">addWatchTarget</span><span class="token punctuation">(</span><span class="token string">"./src/**/*/tailwind.css"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br>eleventyConfig<span class="token punctuation">.</span><span class="token function">addWatchTarget</span><span class="token punctuation">(</span><span class="token string">"tailwind.config.js"</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> <p>Now it watches directly the outputted <code>tailwind.css</code> and I figure Eleventy takes care of the building. It seems to work for now.</p> <p>It did cause some of rebuilding being dropped of off BrowserSync, but it still builds it properly.</p> </content>
</entry>
<entry xml:lang="en">
<title>Making a Twitter bot</title>
<link href="https://samimaatta.fi/en/making-a-twitter-bot/"/>
<updated>2022-10-29T10:52:40Z</updated>
<id>https://samimaatta.fi/en/making-a-twitter-bot/</id>
<content type="html"><p><strong>Update 17.3.2023</strong>: The post is out of date, because of Twitter's changed API policies.</p> <p>I wanted to make a bot that would tweet energy saving tips. The idea was for it to be a part of Finland's national campaign aimed at citizens to reduce energy consumption for the coming winter.</p> <p>Rough steps of what I did:</p> <ol> <li><a href="https://accounts.google.com/signup/v2/webcreateaccount?flowName=GlifWebSignIn&amp;flowEntry=SignUp">Create a gmail account</a> for the bot.</li> <li>Make a <a href="https://twitter.com/">Twitter</a> account for the bot.</li> <li><a href="https://developer.twitter.com/en">Apply for Twitter's developer account</a>. <ul> <li>Go through hoops of getting rights to read and write statuses, and API keys.</li> </ul> </li> <li>Make a prototype: <ol> <li>Make a Google Sheets document that works as a tweet database.</li> <li>Write Python script that fetches and posts statuses (manually).</li> </ol> </li> <li>Get <a href="https://developers.google.com/sheets/api/">Google Sheets API</a>, so your script can access the sheet.</li> <li>Move the Python script to <a href="https://cloud.google.com/">Google Cloud</a>.</li> <li>Automate the Python script with <a href="https://cloud.google.com/scheduler?hl=en_GB">Google Scheduler</a>.</li> <li>Get the bot running! Check out <a href="https://twitter.com/energiarobotti"><span lang="fi">@energiarobotti</span></a>.</li> </ol> <p>By the way, I pretty much followed <a href="https://www.youtube.com/watch?v=83o6rU5XArs">Aaron Jack's Twitter bot building video</a>. It's a bit outdated, but it helps a lot. The sad thing is that he didn't show how to get the developer account for Twitter working. It's the most complicated part of the whole project.</p> <h2 id="make-it-open-source" tabindex="-1">Make it open source</h2> <p>Note that &quot;open source&quot; in this case means making the <a href="https://twitter.com/energiarobotti">Sheet (content in Finnish)</a> and <a href="https://github.com/samimaat/energiarobotti">the code</a> available (without showing the API keys!). Contributing to the Sheet or code is not possible at the moment.</p> <p>It is especially important to state your sources when giving advice that impacts people's wellbeing. It also drives you to make better.</p> </content>
</entry>
<entry xml:lang="fi">
<title>Luokkaloikkarit-kirjoituksista webinaariin</title>
<link href="https://samimaatta.fi/kirjoitukset/luokkaloikkarit-kirjoituksista-webinaariin/"/>
<updated>2022-10-12T17:22:45Z</updated>
<id>https://samimaatta.fi/kirjoitukset/luokkaloikkarit-kirjoituksista-webinaariin/</id>
<content type="html"><p>Aloitin kirjoittamisen Luokkaloikkarit-teemasta kesän 2022 alussa. Se oli intiimi teema, josta halusin nähdä lisää keskustelua. Samalla kuitenkin pelkäsin olla se, joka keskustelun käynnistää. Oli kiva nähdä, että se silti resonoi! Löydät kaikki kirjoitukseni tagin <a href="/tags/luokkaloikkarit/">Luokkaloikkarit</a> takaa.</p> <p>Sain kirjoittelun kulminoitumaan myös webinaariin, johon tuli kaksi puhujaa ja 17 ilmoittautumista sekä lopulta 6 osallistujaa. Siistiä saada jotain konkreettista aikaan. Se oli hauskaa! 😄</p> <h2 id="luokkaloikkari" tabindex="-1">Luokkaloikkari</h2> <p>Olen siis luokkaloikkari eli henkilö, joka on siirtynyt yhdestä yhteiskuntaluokasta toiseen. Minun tapauksessani se tarkoittaa työnväenluokkataustasta keskiluokkaan.</p> <p>Se voi kuitenkin myös tarkoittaa loikkaa niin sanotusti &quot;alaspäin&quot;. Esimerkiksi keskiluokasta työväenluokkaan. En tahdo arvottaa loikkasuuntia, koska lopulta kyseessä on ajatus itsensä aidosta toteuttamisesta, mutta sillä tavoin asiasta saatetaan keskustella.</p> <p>Suomen kaltaisessa maassa luokkaloikkaaminen voikin olla tyypillistä, koska esimerkiksi kouluttautuminen on halpaa, eikä sitä rajoita olennaisesti vanhempien tulotaso, kuten muualla saattaisi olla.</p> <p>Kuten loikka toiseen maahan ja kulttuuriin edellyttää sopeutumista ja oman paikan löytämistä, niin myös luokkaloikka edellyttää niitä. Yhtäkkiä oletkin ympäristössä, jossa oppimasi käyttäytymismallit ja ajattelutavat eivät vastaakaan ympäröivää todellisuutta.</p> <p>Toisin kuin saatetaan yleisesti ajatella, luokkaloikka ei pelkästään liity tulotason muuttumiseen, vaan se elää meidän toiminnassamme ja kulttuurissamme.</p> <p>Tästä siis kirjoitin, mutta miten?</p> <h2 id="omien-kokemusten-ja-tutkimuksen-yhdistaminen" tabindex="-1">Omien kokemusten ja tutkimuksen yhdistäminen</h2> <p>Halusin lähestyä aihetta toisaalta omista kokemuksista lähtien, mutta myös tutkimuksen näkökulmasta. Halusin välttää pelkkää mutuilua - yhtään vähättelemättä omia kokemuksiani tai muiden.</p> <p>Yhteiskuntaluokista puhuminen Suomessa voi välillä herättää kärkkäitäkin mielipiteitä, koska Suomea pidetään tasavertaisten ja yhdenvertaisten mahdollisuuksien maana. Nämä asiat ovat kuitenkin omiaan synnyttämään juuri kaltaisiani ihmisiä: Työnväenluokasta keskiluokkaan ponnistaneita.</p> <p>Löysin <a href="https://uefconnect.uef.fi/henkilo/mari.kayhko/#information">Mari Käyhkön (uef.fi)</a>, joka on tehnyt tutkimusta työsläistaustaisten naisten luokkaloikkaamisesta yliopistoon. Otin häneen yhteyttä ja hän lähetti minulle muutaman tutkimusartikkelin luettavaksi. Suosittelen jokaista tutustumaan Marin tutkimukseen!</p> <p>Otin siis kirjoittamiseni pohjalle Marin tutkimusartikkeleita ja muistiinpanojeni pohjalta yhdistin teksteihin myös omia kokemuksiani. Halusin myös aina todeta, että en ole alan asiantuntija, mutta tarkastelin asioita, jotka kiinnostivat minua.</p> <h2 id="kirjoittamisen-kaava" tabindex="-1">Kirjoittamisen kaava</h2> <p>Kerroin omasta kokemuksestani, tiivistin Marin artikkelin sanoman ja kutsuin ihmisiä keskusteluun. Kerroin lopuksi, että millaisesta aineistosta on ollut kyse ja, että en ollut alan asiantuntija.</p> <p>Se toimi hyvin, koska oman kokemukseni lisäksi tutkimusartikkelit yleensä esittivät useampia polkuja, joita naiset olivat kokeneet. Sillä tavoin sain useampi ihminen sai tarttumapintaa kirjoituksistani.</p> <h2 id="suunnitelma-webinaarista" tabindex="-1">Suunnitelma webinaarista</h2> <p>Halusin tarjota yhteisöllisen kokemuksen niille, joille kirjoitukseni tuntuivat uppoavan siis ideoin webinaarin!</p> <p>Halusin, että webinaarissa oli edes jonkinlaista asiasisältöä, joten otin yhteyttä Mariin ja <a href="https://fi.wikipedia.org/wiki/Katriina_J%C3%A4rvinen">Katriina Järviseen (wikipedia.fi)</a>. Mari teki tutkimusta ja Katriina oli kirjoittanut, yhdessä Laura Kolben kanssa, kaksi kirjaa, jotka liittyivät luokkaloikkareihin. Heillä siis olisi varmasti jotain annettavaa! Onnekseni he nopeasti suostuivat puhujiksi webinaariin.</p> <p>Suunnittelin, että pidän webinaarin elokuun lopussa ja julkaisen yhden kirjoituksen viikossa eräänlaisena mainoksena sille. Yllätyin siitä, miten hidasta kirjoitusten tekeminen oli, mutta luin kuitenkin tutkimusartikkelin aina ennen kirjoittamista, mikä vei aikaa.</p> <p>Sen jälkeen tiivistin osan tutkimusartikkelin sanomasta ja lisäsin siihen omaa pohdintaani. Sain kuin sainkin kirjoitettua tekstejä ennen webinaaria.</p> <h2 id="webinaari" tabindex="-1">Webinaari</h2> <p>Webinaari järjestettiin Teamsissä, joka oli jo ennestään tuttu minulle töitteni puolesta. Ilmoittautumisia oli tullut noin 17 ja osallistujia oli lopulta 6. Lisäksi minä, Mari ja Katriina.</p> <p>Käsittelimme tilaisuuden alussa turvallisemman tilan periaatteet, miten tilaisuus etenee ja, että luvassa on myös pienryhmäkeskustelua.</p> <p>Kaiken kaikkiaan se meni hyvin! Meillä oli kaksi tuntia aikaa, missä Mari ja Katriina pitivät puheenvuoronsa, ja osallistujat pääsivät keskustelemaan pienryhmiin.</p> <p>Palautteet olivat ihania! Tilaisuus oli tarjonnut paikan yhteiselle keskustelulle ja reflektiolle omaa taustaa vasten. Pienryhmäkeskusteluun olisi toivottu lisää aikaa, joten tämä täytyy huomioida tulevissa tilaisuuksissa.</p> <h2 id="reflektio" tabindex="-1">Reflektio</h2> <p>Luokkaloikkarius ei ole asia, joka olisi koko ajan mielen päällä. Nyt se on jo jotain sellaista, johon on tottunut. Tiedostan, että elämäni on jollain tapaa erilaista kuin se on kasvaessani ollut, mutta kannan silti mukanani oppeja siltä ajalta.</p> <p>Erään osallistujan kanssa keskustellessani hän kertoi, että luokkaloikkarina oleminen tarjoaa meille ikään kuin kyvyn nähdä aidan molemmille puolille. Meidän tehtävämme on myös muistuttaa toisia siitä, että aita on edelleen olemassa ja huomioida se, kun sitä ollaan taas rakentamassa lisää.</p> <p>Tsekkaa kirjoitukseni <a href="/tags/luokkaloikkarit/">Luokkaloikkareista</a>.</p> </content>
</entry>
<entry xml:lang="en">
<title>Accessibility metadata and accessibility features, part 2</title>
<link href="https://samimaatta.fi/en/accessibility-metadata-and-accessibility-features-part-2/"/>
<updated>2022-10-01T12:37:19Z</updated>
<id>https://samimaatta.fi/en/accessibility-metadata-and-accessibility-features-part-2/</id>
<content type="html"><p>This is a continuation to <a href="/blog/accessibility-metadata-and-accessibility-features-part-1">my previous post on accessibility features</a>.</p> <p>I am lifting a few relevant <code>accessibilityFeature</code> values from <a href="https://kb.daisy.org/publishing/docs/metadata/schema.org/index.html">schema.org's accessibility metadata</a> on <code>accessibilityFeature</code>s.</p> <p>You can check more in-depth explanation and code snippets on <a href="https://kb.daisy.org/publishing/docs/metadata/schema.org/accessibilityFeature.html#value">Daisy's definition on <code>accessibilityFeature</code></a>.</p> <h2 id="6-index" tabindex="-1">6. Index</h2> <p>Value <code>index</code> can be used if the publication has an index for the user. Prodiving an index makes it easier to navigate in a large publication.</p> <p>An index can be a list of words and where they appear or an index of related terms.</p> <h2 id="7-math-ml" tabindex="-1">7. MathML</h2> <p>Value <code>MathML</code> indicates that the publication uses MathML markup to encode mathematical content.</p> <p>Check out <a href="https://kb.daisy.org/publishing/docs/html/mathml.html#">MathML knowledge base</a> for in-depth stuff.</p> <h2 id="8-printed-page-numbers" tabindex="-1">8. Printed page numbers</h2> <p>Value <code>printPageNumbers</code> indicates that the publication has page breaks according to a printed book's page numbers.</p> <p>This is especially important at Celia, because almost all of the ebooks are based on printed books. It's common place to reference a book's contents according to its page numbers.</p> <h2 id="9-page-navigation-not-yet-implemented" tabindex="-1">9. Page navigation (not yet implemented)</h2> <p>Value <code>pageNavigation</code> would indicate that the publication has a page list.</p> <p>This hasn't been implemented yet (at the time of writing), but it would be useful. It is comparable to printed page numbers, but in the use case of purely digital publishing there really aren't any page numbers.</p> <p>People are so used to referencing books by their page numbers that even virtual ones would be really helpful.</p> <h2 id="10-linear-reading-order" tabindex="-1">10. Linear reading order</h2> <p>Value <code>readingOrder</code> tells the user that the publication has a logical reading order.</p> <p>Imagine a fixed layout page with content at different parts of the page. Depending on the markup it might appear to be logical, but for somebody using assistive techonologies the content might be all jumbled up.</p> <p>Providing correct reading order makes the content logical for any reader.</p> </content>
</entry>
<entry xml:lang="en">
<title>Accessibility metadata and accessibility features, part 1</title>
<link href="https://samimaatta.fi/en/accessibility-metadata-and-accessibility-features-part-1/"/>
<updated>2022-10-01T12:26:44Z</updated>
<id>https://samimaatta.fi/en/accessibility-metadata-and-accessibility-features-part-1/</id>
<content type="html"><p>How can you add metadata about accessibility <strong>features</strong> in your website, ebook or any HTML-based digital product?</p> <p>A straightforward way is to use <a href="https://kb.daisy.org/publishing/docs/metadata/schema.org/index.html">schema.org's accessibility metadata</a> on <code>accessibilityFeature</code>s.</p> <p>You can check more in-depth explanation and code snippets on <a href="https://kb.daisy.org/publishing/docs/metadata/schema.org/accessibilityFeature.html#value">Daisy's definition on <code>accessibilityFeature</code></a>.</p> <p>I'm highlighting a few that are relevant to my job at the moment in particular about ebooks.</p> <h2 id="1-alternative-text" tabindex="-1">1. Alternative text</h2> <p>Value <code>alternativeText</code> can be used if your visuals (images, audio, video) have alternative texts. The key is that they should be adding to the information in the publication.</p> <p>Easy way to think about it: If you have non-empty, informative alt attributes then you should use <code>alternativeText</code> value!</p> <p>Remember that decorative images don't count towards this, since you should make their <code>alt</code> attributes empty: <code>alt=&quot;&quot;</code>.</p> <h2 id="2-long-descriptions" tabindex="-1">2. Long descriptions</h2> <p>Long or extended descriptions are intended for visual content that is too complex to be included in an alternative text. This basically means explaining a graph or a flow chart, so it is understood by the target audience.</p> <p>The difference between long descriptions and alternative texts can be small, but it is important.</p> <p>Think alternative texts as summaries of their visual contents. Long descriptions then are the actual contents or highlights of the most important parts of them.</p> <h2 id="3-aria" tabindex="-1">3. ARIA</h2> <p>Basically <code>ARIA</code> value means that you use <code>ARIA</code> roles in your publication. This is a can of worms in its own right, so go read notes on <a href="https://www.w3.org/TR/using-aria/#notes2"><code>ARIA</code> use in HTML</a>.</p> <h2 id="4-transforming-the-display" tabindex="-1">4. Transforming the display</h2> <p>Value <code>displayTransformability</code> means that the user is able to change the display of all text. For example the font family, font size or word spacing.</p> <p>This means that all text should be encoded as text - and not included only in images.</p> <p>In CSS terms it means not using absolute values for dimensions such as pixels or points, but em's and rem's.</p> <h2 id="5-high-contrast" tabindex="-1">5. High contrast</h2> <p>Value <code>highContrastDisplay</code> can be used if the contrast ratio is 7:1 between foreground text and the background. This also takes into account images with text.</p> <p>That's all for now!</p> </content>
</entry>
<entry xml:lang="en">
<title>Accessibility metadata and sufficient access modes, part 2</title>
<link href="https://samimaatta.fi/en/accessibility-metadata-and-sufficient-access-modes-part-2/"/>
<updated>2022-10-01T12:10:31Z</updated>
<id>https://samimaatta.fi/en/accessibility-metadata-and-sufficient-access-modes-part-2/</id>
<content type="html"><p>Continuing accessibility metadata post with sufficient access modes. <a href="/accessibility-metadata-and-sufficient-access-modes-part-1/">Previous part about sufficient access modes</a>.</p> <p>Luckily you can use <a href="https://kb.daisy.org/publishing/docs/metadata/schema.org/index.html">schema.org's accessibility metadata</a> to easily do just that.</p> <p>In this context a sufficient access mode means that you can access <strong>all of the content</strong> in the described ways (for code snippets go to <a href="https://kb.daisy.org/publishing/docs/metadata/schema.org/accessModeSufficient.html">Daisy's definition of accessModeSufficient</a>).</p> <h2 id="5-textual-auditory" tabindex="-1">5. Textual, auditory</h2> <p>If we are being strict and saying this is the only sufficient access mode for the publication, it means that you absolutely need the text and the audio together.</p> <p>This might be a study material that has is about data sonification and with samples. It would have text describing the sonification and audio examples of them.</p> <h2 id="6-auditory-visual" tabindex="-1">6. Auditory, visual</h2> <p>In a strict sense, I am imagining a children's book with colorful images and audio about the story. Then you would need both the audio and the images.</p> <p>If the publication also had a sufficient access mode of &quot;visual&quot; then that would mean that the audio isn't actually needed to understand the contents. For example, it would just be a description of the images in audio format.</p> <h2 id="7-textual-auditory-visual" tabindex="-1">7. Textual, auditory, visual</h2> <p>If this was the only sufficient access mode then it would be a publication that has videos in it without any accessibility features such as captions, audio descriptions or such. So, it would basically be old school Youtube.</p> <h2 id="wrapping-it-up" tabindex="-1">Wrapping it up</h2> <p>You can have multiple different sufficient access modes. If you have individual sufficient access modes of textual and visual, then you also have a sufficient access mode of textual + visual.</p> <p>If you only have a sufficient access mode of textual + visual, you don't necessarily have sufficient access modes for textual and visual separately.</p> <p>Did you get it? Are you going to use them?</p> <p>Let me know and share with somebody who might find this useful!</p> </content>
</entry>
<entry xml:lang="en">
<title>Accessibility metadata and sufficient access modes, part 1</title>
<link href="https://samimaatta.fi/en/accessibility-metadata-and-sufficient-access-modes-part-1/"/>
<updated>2022-10-01T11:17:00Z</updated>
<id>https://samimaatta.fi/en/accessibility-metadata-and-sufficient-access-modes-part-1/</id>
<content type="html"><p>You should definitely add accessible metadata to your website or ebook!</p> <p>Luckily you can use <a href="https://kb.daisy.org/publishing/docs/metadata/schema.org/index.html">schema.org's accessibility metadata</a> to easily do just that.</p> <p>Last time I wrote about access modes, and now I have things about sufficient access modes.</p> <p>In this context a sufficient access mode means that you can access all of the content in the described ways (for code snippets go to <a href="https://kb.daisy.org/publishing/docs/metadata/schema.org/accessModeSufficient.html">Daisy's definition of accessModeSufficient</a>).</p> <p>Just a heads up: This might a bit more complicated to understand (and even I am just making sense of this), so don't be afraid to ask and discuss!</p> <p>So, let's go over different possibilities with 3 access modes: Textual, auditory and visual.</p> <h2 id="1-textual" tabindex="-1">1. Textual</h2> <p>If the sufficient access mode is only text, then it means that all of the content in your publication has to be accessible by text.</p> <p>Notice the difference compared to a mere access mode: Including &quot;textual&quot; as an access mode meant that the page has some text. Being sufficient access mode means that all of the information has to be in text in some way.</p> <p>This is easy if your publication is all text. Then it indeed is the sufficient access mode to get all the information in your publication.</p> <p>If you publication has images, but you have added alternative text or long descriptions to them then &quot;textual&quot; is also a sufficient access mode to your content.</p> <h2 id="2-auditory" tabindex="-1">2. Auditory</h2> <p>If all of the content is in audio format then this is for you. Publications that could fit this definition are audiobooks or podcasts.</p> <p>Remember that if you have a possibility to listen the contents of your publication, it should be for all of the content. If the audio version skips images or doesn't describe them, then &quot;auditory&quot; isn't a sufficient access mode to your content.</p> <h2 id="3-visual" tabindex="-1">3. Visual</h2> <p>I imagine a children's image book or an infographic with this one. If all of the content requires sight and it's not in any other format then &quot;visual&quot; fits the bill.</p> <p>If the publication has images and text in-between explaining them, then all of the content isn't accessible by visuals only.</p> <h2 id="4-textual-visual" tabindex="-1">4. Textual, visual</h2> <p>This is your basic printed book, ebook or website. You get information from the text as well as the images.</p> <p>You can also provide all of the information through text with alternative text or long descriptions, but it is not necessary for using these values.</p> <p>This is it for this time! I will continue this list next time.</p> <p>With 3 elements you can generate 7 different combinations when not counting the empty set, so there's still 3 more combinations to get to!</p> </content>
</entry>
<entry xml:lang="en">
<title>Accessibility metadata and access modes</title>
<link href="https://samimaatta.fi/en/accessibility-metadata-and-access-modes/"/>
<updated>2022-10-01T10:23:50Z</updated>
<id>https://samimaatta.fi/en/accessibility-metadata-and-access-modes/</id>
<content type="html"><p>Should you add accessibility metadata to your website or digital publication?</p> <p>Well, yeah. It helps to &quot;to enable discovery no matter how the publication is distributed or consumed.&quot;</p> <p>Introducing <a href="https://kb.daisy.org/publishing/docs/metadata/schema.org/index.html">schema.org's accessibility metadata</a> step-by-step.</p> <p>(Here I talk about websites and digital books as &quot;publications&quot;.)</p> <p>Access modes describe in which ways your publication's content can be accessed (for code examples go to <a href="https://kb.daisy.org/publishing/docs/metadata/schema.org/accessMode">Daisy's definition of accessMode</a>).</p> <h2 id="textual" tabindex="-1">Textual</h2> <p>If you define your publication to be &quot;textual&quot; it means that the content is at least partly in text.</p> <p>You wouldn't use &quot;textual&quot; property at all if you had a portfolio or art showcase page without text.</p> <h2 id="visual" tabindex="-1">Visual</h2> <p>Use this if the publication has &quot;images, graphics or video&quot; and it is relevant to understand the content of the page. If you only have decorative images then don't use this property.</p> <p>So, use when you talk reference the image or it's a flow chart that adds to the content on the page.</p> <h2 id="auditory" tabindex="-1">Auditory</h2> <p>Similar with images: If the audio adds to the information on the page, then you should use this property.</p> <p>If you have one of those websites that have &quot;soothing nature sounds&quot; in the background, this is not for you. Except if the site is about wild life in Canada and you play a recording of that!</p> <h2 id="tactile" tabindex="-1">Tactile</h2> <p>Do you have an accompanying piece of tactile material with your publication? Probably not.</p> <p>Although, you can use &quot;tactile&quot; property if you happen to have braille-formatted text in the publication (for example a visual representation of the braille letters in Unicode). Using a braille display doesn't count as your publication being &quot;tactile&quot;.</p> <p>Have you used these? Are you going to now?</p> <p>Share with those who would benefit!</p> </content>
</entry>
<entry xml:lang="en">
<title>Verifying a video from social media</title>
<link href="https://samimaatta.fi/en/verifying-a-video-from-social-media/"/>
<updated>2022-09-28T00:00:00Z</updated>
<id>https://samimaatta.fi/en/verifying-a-video-from-social-media/</id>
<content type="html"><p>Having read Eliot Higgins’s “We are Bellingcat” (which is a capticating book to any Sherlock Holmes fan!), I wanted to test out some of their methodology. I mainly used the information gathered on <a href="https://www.bellingcat.com/resources/2021/11/01/a-beginners-guide-to-social-media-verification/">Bellingcat’s Beginner’s Guide to Social Media Verification</a>.</p> <p>I followed their handy flow chart on the steps that you should take while doing verification:</p> <figure> <figcaption>A verification checklist from Bellingcat’s website.</figcaption> <picture><source type="image/webp" srcset="/img/XeievFoLWc-768.webp 768w"><img loading="lazy" decoding="async" alt="Bellingcat's investigation flowchart." src="/img/XeievFoLWc-768.jpeg" width="768" height="595"></picture> </figure> <ol> <li>Originality: Was the image or video used before?</li> <li>Who? Who is the source of the photo or video online?</li> <li>Where? Where was the photo or video taken?</li> <li>When? When was the photo or video captured?</li> <li>Why? Why was it captured?</li> </ol> <h2 id="the-social-media-piece-to-be-verified" tabindex="-1">The social media piece to be verified</h2> <p>While browsing Twitter I saw a tweet about a Russian missile attack to Vinnytsia, Ukraine by Hanna Liubakova. It contained a video of the aftermath, and it showed a city square covered in black smoke. They referenced a local media report.</p> <div class="eleventy-plugin-embed-twitter"><blockquote id="tweet-1547504989257568256" class="twitter-tweet"><a href="https://twitter.com/HannaLiubakova/status/1547504989257568256"></a></blockquote></div><script src="https://platform.twitter.com/widgets.js" charset="utf-8" async></script> <p>So, there were a couple of things that you could be thinking of the video based on the tweet.</p> <ol> <li>Where exactly was the video from? Is the alleged place (Vinnytsia, Ukraine) correct?</li> <li>When was the video taken?</li> </ol> <p>Let’s go by checklist’s steps.</p> <h2 id="1-originality-was-the-image-or-video-used-before" tabindex="-1">1. Originality: Was the image or video used before?</h2> <p>If the video was used before, I couldn’t really tell. I am not aware of any “reverse video searches” that could be done. So, in this case I decided not to use too much time on it. I also thought that it might come up later on some other points in the list.</p> <p>Result: Inconclusive.</p> <h2 id="2-who-who-is-the-source-of-the-video" tabindex="-1">2. Who: Who is the source of the video?</h2> <p>Hanna Liubakova, who is a Belarusian journalist. On their <a href="https://twitter.com/HannaLiubakova">Twitter handle @HannaLiubakova</a>, it shows that they have more than 100k followers, which could be seen to add to their credibility.</p> <p>They also have a <a href="https://en.wikipedia.org/wiki/Hanna_Liubakova">Wikipedia page Hanna Liubakova</a>, which details how they have been pro-Ukraine and against Russia’s attack on Ukraine. They are not afraid to show it and have actually been driven to flee, because of Belarus’s president Alexander Lukashenko, who is close to Putin’s Russia.</p> <p>So, based on these points and the tweet’s line “I wrote yesterday about Russia being a terrorist state. Every day, we see evidence”, I could deduce that they have a motive to highlight Russia’s crimes against the Ukrainian people. They seem like an actual person.</p> <p>I could probably find more evidence such as a youtube video to link them specifically to the Twitter handle.</p> <p>Result: Believable and most likely that the person if legit.</p> <h2 id="3-where-where-was-the-video-taken-geolocation" tabindex="-1">3. Where: Where was the video taken? (Geolocation)</h2> <p>Allegedly in Vinnytsia, Ukraine based only on the tweet’s text: “Russia attacked Vinnytsia, #Ukraine.”</p> <p>From the video I captured two landmarks, which seemed notable to me.</p> <ol> <li>A statue of an airplane, which might make it easy to find the exact location (Picture 1.).</li> <li>A billboard with illegible text (which didn’t prove too useful) (Picture 2.).</li> </ol> <p>Next to flag pole with Ukraine's flag, there is a airplane tipped slightly upwards with two arcs around it.</p> <figure> <figcaption>Picture 1. Statue of an airplane.</figcaption> <picture><source type="image/webp" srcset="/img/s-tFNHNzu8-105.webp 105w"><img loading="lazy" decoding="async" alt="Grainy video screenshot of an airplane statue." style="width:10rem" src="/img/s-tFNHNzu8-105.jpeg" width="105" height="89"></picture> </figure> <p>Billboard with an illegible header and text. It has a white background that's slashed by a triangle-shaped area of green. There is also a red textbox.</p> <figure> <figcaption>Picture 2. Billboard with an ad.</figcaption> <picture><source type="image/webp" srcset="/img/x9mduC6QBM-93.webp 93w"><img loading="lazy" decoding="async" alt="Grainy video screenshot of a billboard." style="width:10rem" src="/img/x9mduC6QBM-93.jpeg" width="93" height="103"></picture> </figure> <h3 id="just-going-to-google-a-few-things" tabindex="-1">Just going to google a few things</h3> <p>Now we have some landmarks to find. I tried to find it simply by searching with terms “vinnytsia plane statue”. It returned a <a href="https://www.tripadvisor.com/ShowUserReviews-g940873-d3316863-r641562733-Monument_in_Honour_of_Ukraine_Air_Force_Creation-Vinnytsia_Vinnytsia_Oblast.html#REVIEWS">Tripadvisor review</a> on a monument named “Monument in Honour of Ukraine Air Force Creation.” This seemed promising.</p> <p>Moving on from the Tripadvisor review the monument should be located in Peremohy Square, which on the eastern side of the river going through Vinnytsia. The statue should depict a MiG-21 fighter jet.</p> <p>I googled the name of the monument and found a <a href="https://commons.wikimedia.org/wiki/File:MiG-21_Vinnitsa_2010_G2.jpg">Wikimedia entry about the MiG-21 fighter jet statue (image not described)</a>. You can locate it in Google Maps view by searching for the name of the monument (picture 3). It is also in the Peremohy Square and “Peremohy” means “Victory”. There are other squares in Ukrainian cities named the same – for example in <a href="https://www.google.com/maps/place/Peremohy+Square,+Kyiv,+Ukraine,+02000/@50.4465719,30.4930171,17z/data=!3m1!4b1!4m5!3m4!1s0x40d4ce8b3fbbf2d7:0xf55d575f2da77f47!8m2!3d50.4465719!4d30.4930171?shorturl=1">Kyiv (Peremohy square, Google maps)</a>. Monument in Honour of Ukraine Air Force Creation and near House of Officer's, a concert hall. Behind it an office building. It is near a large street conjunction.</p> <figure> <figcaption>Picture 3. Google Map view of the monument’s location.</figcaption> <picture><source type="image/webp" srcset="/img/u37q_GoIDf-750.webp 750w"><img loading="lazy" decoding="async" alt="The monuments is to the west of the intersection of Kotsyubyns'koho Avenue and Zamostianska Street. To the south there is House of Officer's concert hall." src="/img/u37q_GoIDf-750.jpeg" width="750" height="635"></picture> </figure> <p>In addition, let’s compare the video footage (picture 4) and Google street view (picture 5). We can see that they are the same place. Monument in Honour of Ukraine Air Force Creation and behind it a partly destroyed office building covered in black smoke.</p> <figure> <figcaption>Picture 4. Screenshot of the video footage.</figcaption> <picture><source type="image/webp" srcset="/img/IIVRfQNM-Q-292.webp 292w"><img loading="lazy" decoding="async" alt="A building covered black smoke with people walking in forefront. The airplane monument is on the left and in front of the building. The shot is from the street." src="/img/IIVRfQNM-Q-292.jpeg" width="292" height="360"></picture> </figure> <p>Monument in Honour of Ukraine Air Force Creation and behind it an office building that's intact. On the left a glimpse of the House of Officers, a concert hall.</p> <figure> <figcaption>Picture 5. Google Maps street view of the same place as in the video.</figcaption> <picture><source type="image/webp" srcset="/img/9aHEICeOJp-768.webp 768w"><img loading="lazy" decoding="async" alt="Same building as in picture 4, but without smoke. The square is visible with the airplane monument and people walking in the streets." src="/img/9aHEICeOJp-768.jpeg" width="768" height="503"></picture> </figure> <h3 id="results-of-geolocation" tabindex="-1">Results of geolocation</h3> <p>The location is correct and it’s Vinnytsia, Ukraine.</p> <p>More accurately it’s near the “Monument in honor of the Air Forces of Ukraine” at the Peremohy Square. The video was captured from the street of Kotsyubyns’koho Ave, and from the southern or southeastern side of the monument. You can check the specific <a href="https://www.google.com/maps/@49.2387676,28.4925352,3a,75y,350.78h,92.58t/data=!3m6!1e1!3m4!1sbLHka7v_CInbPWlxiKLbqA!2e0!7i13312!8i6656?shorturl=1">Google street view of Kotsyubyns’koho Ave</a>.</p> <p>Near it is House of Officers’, which is a concert hall. Behind it is the office building that was hit.</p> <h2 id="4-when-when-was-the-video-captured-chronolocation" tabindex="-1">4. When: When was the video captured? (Chronolocation)</h2> <p>For this I used Chronolocation guide by the user Sector035 (Medium post), since the original guide didn’t go much into the details on how to do it.</p> <p>There are a couple of ways to figure out when the event took place.</p> <p>There was no claim on when the even took place in the original tweet, so nothing from there. We can look at the posting date (14th of July) and considering that there wasn’t any news about it earlier than this day (the 14th of July 2022), one could assume that it was very recent. The weather</p> <p>From the video it was obvious that it happened in daytime. The sky was partly cloudy and blue (picture 6). What about a specific date or the time in day?</p> <figure> <figcaption>Picture 6. Video footage. Sky is partly cloudy. Black smoke on the right side of the screen.</figcaption> <picture><source type="image/webp" srcset="/img/YHauPwCEp4-290.webp 290w"><img loading="lazy" decoding="async" src="/img/YHauPwCEp4-290.jpeg" alt="Screenshot of the video." width="290" height="165"></picture> </figure> <p>Looking at the historical weather data from <a href="https://www.timeanddate.com/">timeanddate.com</a>, we could take a look at Vinnytsia’s weather from the past days (picture 7).</p> <figure> <figcaption>Picture 7. Vinnytsia’s weather from 10th of July to 14th of July.</figcaption> <picture><source type="image/webp" srcset="/img/kD2ZmI5XGf-769.webp 769w"><img loading="lazy" decoding="async" alt="Weather during the day in July. 10th: partly cloudy to cloudy. 11th: partly cloudy. 12th: partly cloudy to cloudy. 13th: heavy overcast. 14th: partly cloudy." src="/img/kD2ZmI5XGf-769.jpeg" width="769" height="340"></picture> </figure> <p>This doesn’t give us much: It couldn’t have been the 13th, since it was heavily overcast. It could have been some other day in the same week. I am leaning towards the 14th, because the news would have been out way before if it had happened before.</p> <h3 id="time-of-day" tabindex="-1">Time of day</h3> <p>Anyway, let’s continue to try to figure out the time of day. The video footage is low resolution, but on some parts of the video, you can see shadows are cast away from the camera (picture 8). If you check the video yourself, it might be easier to notice. A pedestrian roughly casts a shadow to north or northwest.</p> <figure> <figcaption>Picture 8. Shadow is roughly cast by a pedestrian.</figcaption> <picture><source type="image/webp" srcset="/img/iwWM92rOR7-97.webp 97w"><img loading="lazy" decoding="async" alt="Grainy screenshot of a video. Pedestrian's shadow roughly falls north or northwest. The shadow is very unclear." style="width:9rem" src="/img/iwWM92rOR7-97.jpeg" width="97" height="117"></picture> </figure> <p>If the shadow is cast to the north or northwest, it means that the sun is in the opposite direction of south or southeast. We have to notice that the street, where the video was taken is actually at an angle to the monument. It is in such an angle that the shadows appear to be slightly more to the north than they actually are. This means that the time in video is more likely on the morning side than noon, so I would guess 9-12 – maybe closer to 12 than 9.</p> <p>Result: Most likely it happened on the 14th of July and at around 9-12 o’clock.</p> <h2 id="5-why-why-was-the-video-captured" tabindex="-1">5. Why: Why was the video captured?</h2> <p>The video was most likely taken to show the aftermath of the strike and how it has affected a central part of a city, where civilians are. It has been further circulated (news and the tweet) to highlight Russia’s actions against Ukraine. Retrospective: How did I do?</p> <p>I am going to compare my findings to a Ukrainian <a href="https://www.pravda.com.ua/eng/">news website Pravda (English version)</a> and their news article <a href="https://www.pravda.com.ua/eng/news/2022/07/14/7358046/">Russians hit the centre of Vinnytsia with rockets... (Pravda)</a>.</p> <p>The news article specifies the time when the missile strike was reported and confirmed, which was at 11:20 (quote 1).</p> <blockquote> <p>Head of Vinnytsia Oblast Serhii Borzov confirmed at 11:20: “We have had a missile ‘arrival’ in Vinnytsia.”</p> <p>Quote 1. <a href="https://www.pravda.com.ua/eng/news/2022/07/14/7358046/">Russians hit the centre of Vinnytsia with rockets... (Pravda)</a></p> </blockquote> <p>The specific location wasn’t disclosed, but the article mentions the Officers’ House concert hall, which I determined to be at the scene (quote 2).</p> <blockquote> <p>The Officers’ House and nearby residential buildings have also been damaged.”</p> <p>Quote 2. <a href="https://www.pravda.com.ua/eng/news/2022/07/14/7358046/">Russians hit the centre of Vinnytsia with rockets... (Pravda)</a></p> </blockquote> <p>It truly was at the monument.</p> <p>I found the exact location and also did pretty well on the time estimation. Even though I couldn’t really be sure of the date, because the weather was the same for many days. Although seeing the many news articles that have come of the event, I can be sure that it happened on the 14th of July 2022.</p> <h2 id="final-thoughts-for-now" tabindex="-1">Final thoughts for now</h2> <p>This is not a happy post. Russia’s attack on Ukraine is condemned by Finland and by its citizens – including me.</p> <p>What I have done shows that it truly is possible for a layman to be doing fact checking based on open sources and the internet. It requires that one is rigorous in their methodology and first and foremost open how they did it. You should see the breadcrumb of sources that I have listed and also check them for yourself.</p> <p>What could I have done better?</p> <ul> <li>The background check on the original tweet. I pretty much glossed over that.</li> <li>Specific date and time of the video wasn’t very rigorous – especially discussion about the angle of the shadows. The <a href="https://medium.com/quiztime/lining-up-shadows-2351ae106cec">Chronolocation guide by the user Sector035 (Medium post)</a> gives you much more information.</li> <li>In the end I trusted a news article to check how I had done, but I let that slide, because this is firstly an exercise to see if it can be done.</li> </ul> <p>Please check out <a href="https://twitter.com/EliotHiggins">Eliot Higgins (Twitter)</a> and his book “We are Bellingcat”. It really is that good.</p> </content>
</entry>
<entry xml:lang="en">
<title>Building blocks for my first Eleventy site</title>
<link href="https://samimaatta.fi/en/building-blocks-for-my-first-eleventy-site/"/>
<updated>2022-08-30T00:00:00Z</updated>
<id>https://samimaatta.fi/en/building-blocks-for-my-first-eleventy-site/</id>
<content type="html"><p>I started using Eleventy mainly, because <a href="https://eevis.codes">eevis.codes</a> used it for her site! Go check it out. She posts great stuff about accessibility (and knitting)!</p> <p>Originally I used Wordpress, but felt held back by the UI. I wanted to have the possibility of doing custom HTML more easily.</p> <h2 id="adding-id-s-to-headings" tabindex="-1">Adding id's to headings</h2> <p>I want to be able to use anchor links, so I made it possible to generate id's for headings in Markdown.</p> <p>For this I used <a href="https://humanwhocodes.com/snippets/2020/07/eleventy-heading-ids/">Humanwhocodes's post &quot;Eleventy headings ids&quot;</a>:</p> <p>Include the code below into .eleventy.js file:</p> <pre class="language-js"><code class="language-js"><span class="token comment">// this works because Eleventy also installs markdown-it</span><br><span class="token keyword">const</span> markdownIt <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">"markdown-it"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><br><span class="token comment">// create a new markdown-it instance with the plugin</span><br><span class="token keyword">const</span> markdownItAnchor <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">"markdown-it-anchor"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token keyword">const</span> markdownLib <span class="token operator">=</span> <span class="token function">markdownIt</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">html</span><span class="token operator">:</span> <span class="token boolean">true</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>markdownItAnchor<span class="token punctuation">)</span><span class="token punctuation">;</span><br><br><span class="token comment">// replace the default markdown-it instance</span><br>eleventyConfig<span class="token punctuation">.</span><span class="token function">setLibrary</span><span class="token punctuation">(</span><span class="token string">"md"</span><span class="token punctuation">,</span> markdownLib<span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> <h2 id="language-setting" tabindex="-1">Language setting</h2> <p>Sometime I might post in Finnish, so I want to have an option to do so. That's why I added a <code>lang</code> attribute to the <code>main</code> section on my blog posts. I have two choices</p> <ol> <li>I can omit it and the overall side language takes over (which is English) or</li> <li>I can include <code>lang=&quot;fi&quot;</code> in the frontmatter and it will change the blog post's language to Finnish (for example).</li> </ol> <p>The code looks like this: <code>&lt;main {{ lang }} id=&quot;main&quot;&gt;</code> (I id the <code>main</code>, so I can add &quot;skip to content&quot; link later.)</p> <h2 id="teasers-and-excerpts" tabindex="-1">Teasers and excerpts</h2> <p>You can include teasers in your blog posts. So, I did that. Should it just be the first paragraph of the blog post? Might be easier. Or two first sentences?</p> <p>How to do this? Include <code>teaser: [teaser text]</code> in your front matter.</p> <p><strong>Update</strong>: I actually didn't use the technique above. I wanted for the site generate the blog excerpt by itself. For this I followed <a href="https://www.jonathanyeong.com/garden/excerpts-with-eleventy/">Jonathan Yeon's &quot;Excerpts wit Eleventy&quot;</a> and modified it a bit to work with language tag properly. My issue being that I post in English and in Finnish.</p> <p>I already got the posts tagged properly, but excerpts didn't have proper language tags. I had to change how the JavaScript function produces the excerpt <code>if</code> the blog has a <code>lang</code> property in the front matter. Then it also includes the <code>lang=&quot;fi&quot;</code> attribute for the excerpt.</p> <p>Code that I used from Jonathan Yeong's post (and modified):</p> <pre class="language-js"><code class="language-js"><span class="token keyword">function</span> <span class="token function">extractExcerpt</span><span class="token punctuation">(</span><span class="token parameter">article</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><br> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span>article<span class="token punctuation">.</span><span class="token function">hasOwnProperty</span><span class="token punctuation">(</span><span class="token string">"templateContent"</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><br> console<span class="token punctuation">.</span><span class="token function">warn</span><span class="token punctuation">(</span><br> <span class="token string">'Failed to extract excerpt: Document has no property "templateContent".'</span><br> <span class="token punctuation">)</span><span class="token punctuation">;</span><br> <span class="token keyword">return</span> <span class="token keyword">null</span><span class="token punctuation">;</span><br> <span class="token punctuation">}</span><br><br> <span class="token keyword">let</span> excerpt <span class="token operator">=</span> <span class="token keyword">null</span><span class="token punctuation">;</span><br> <span class="token keyword">const</span> content <span class="token operator">=</span> article<span class="token punctuation">.</span>templateContent<span class="token punctuation">;</span><br> <span class="token keyword">const</span> lang <span class="token operator">=</span> article<span class="token punctuation">.</span>data<span class="token punctuation">.</span>lang<span class="token punctuation">;</span><br><br> excerpt <span class="token operator">=</span> <span class="token function">striptags</span><span class="token punctuation">(</span>content<span class="token punctuation">)</span><br> <span class="token punctuation">.</span><span class="token function">substring</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">150</span><span class="token punctuation">)</span> <span class="token comment">// Cap at 150 characters</span><br> <span class="token punctuation">.</span><span class="token function">replace</span><span class="token punctuation">(</span><span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">^\s+|\s+$|\s+(?=\s)</span><span class="token regex-delimiter">/</span><span class="token regex-flags">g</span></span><span class="token punctuation">,</span> <span class="token string">""</span><span class="token punctuation">)</span><br> <span class="token punctuation">.</span><span class="token function">trim</span><span class="token punctuation">(</span><span class="token punctuation">)</span><br> <span class="token punctuation">.</span><span class="token function">concat</span><span class="token punctuation">(</span><span class="token string">"..."</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><br> <span class="token keyword">if</span> <span class="token punctuation">(</span>lang<span class="token punctuation">)</span> <span class="token punctuation">{</span><br> excerpt <span class="token operator">=</span> <span class="token string">"&lt;p "</span> <span class="token operator">+</span> lang <span class="token operator">+</span> <span class="token string">">"</span> <span class="token operator">+</span> excerpt <span class="token operator">+</span> <span class="token string">"&lt;/p>"</span><span class="token punctuation">;</span><br> <span class="token punctuation">}</span><br><br> <span class="token keyword">return</span> excerpt<span class="token punctuation">;</span></code></pre> <h2 id="adding-pagination" tabindex="-1">Adding pagination</h2> <p>So, not all of the posts are visible in one sitting. Not sure how to do this yet.</p> <p><strong>Update 1</strong>: Pagination still doesn't work...</p> <p><strong>Update 2</strong>: So, yeah. The problem was that I used <code>reverse</code> in the function that produced the list of my posts in the <code>for</code> loops: <code>{% for post in posts %}</code>.</p> <p>What fixed it was to remove the <code>reverse</code> from the loop and just add <code>reverse</code> to the front matter of my blog page. This allowed the pagination to work properly.</p> <h2 id="deploying-with-netlify" tabindex="-1">Deploying with Netlify</h2> <p>When I do this, I will probably follow <a href="https://www.youtube.com/watch?v=i9qCmQ2EeUA0">Kevin Powell's instructions on Youtube</a>.</p> <p><strong>Update</strong>: Actually I'm using <a href="https://codingthesmartway.com/building-a-blog-with-eleventy-and-netlify-cms-part-3-managing-blog-content-with-netlify-cms/">CodingTheSmartWay's blog post on managing blog content with Netlify</a>.</p> <h2 id="adding-a-hidden-skip-to-content-link-to-the-top-of-the-page" tabindex="-1">Adding a hidden &quot;skip to content&quot; link to the top of the page</h2> <p>I followed <a href="https://css-tricks.com/how-to-create-a-skip-to-content-link/#maincontent">Paul Ryan's instructions on css-tricks</a>.</p> <p>I noticed that I had to translate by 105 %, since the edge of the box was poking out from above.</p> <p>I also had to ditch my <code>margin: 5%;</code> from the body. Have to figure that out.</p> <h2 id="support-for-date-time-stuff-with-luxon" tabindex="-1">Support for dateTime stuff with Luxon</h2> <p>I just followed the <code>npm install</code> -route from <a href="https://moment.github.io/luxon/#/install">Luxon</a>.</p> <p>You cannot believe how hard of a time I had implementing this...</p> <p>But I finally got it working!</p> <p>I used Luxon's docs to help me format the date into the format we use in Finland.</p> <p>Here is the code for that</p> <pre class="language-js"><code class="language-js">eleventyConfig<span class="token punctuation">.</span><span class="token function">addFilter</span><span class="token punctuation">(</span><span class="token string">"postDate"</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">dateObj</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><br> <span class="token keyword">return</span> DateTime<span class="token punctuation">.</span><span class="token function">fromJSDate</span><span class="token punctuation">(</span>dateObj<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toFormat</span><span class="token punctuation">(</span><span class="token string">"&lt;strong>d.L.yyyy&lt;/strong>"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre> <p>I was wondering if I should try to display the date in other languages based on the langauge of the post.</p> <p>Now I also want to display the publication date <strong>after</strong> the blog post's heading, but this can't really be done in a straighforward way with a layout... I have to investigate!</p> <p><strong>Update</strong>: I used use Nunjucks's <code>extends</code> which I already use to display <code>h1</code> headings on individual pages.</p> <h2 id="generating-the-main-navigation-and-implementing-aria-current" tabindex="-1">Generating the main navigation and implementing <code>aria-current</code></h2> <p>I followed a guide from <a href="https://www.youtube.com/watch?v=rZyNBd1WgVM">Mike Aparicio on &quot;Templating: Eleventy's super power&quot; (Youtube)</a>.</p> <p>I did two things</p> <ol> <li>used Nunjucks functions to render the navigation iteratively and</li> <li>implemented <code>aria-current</code> that tells the user which page they are on.</li> </ol> <p>I had some difficulties getting the <code>.json</code> to work properly with navigation items, but it finally worked!</p> <h2 id="using-prism-js-to-syntax-highlight" tabindex="-1">Using prism.js to syntax highlight</h2> <p>Including prism.js is pretty straighforward since there is a resource for that too! Just follow <a href="https://www.11ty.dev/docs/plugins/syntaxhighlight/">11ty's own instructions on the syntac highlighting plugin</a>.</p> <p>I just noticed that the background of the code template isn't accessible with comments' font color, so I have to fiddle with that stuff.</p> <h2 id="messing-around-with-the-css" tabindex="-1">Messing around with the CSS</h2> <p>So, much to learn...</p> <p>I want to</p> <ol> <li>change my headings' size, so they would be bigger and pop up from the text more, they should also have more space before and after</li> <li>include the &quot;#&quot; to copy anchor links for my posts, it seems cool!</li> <li>make everything nice and center, I seem to have to learn <code>flexbox</code> for this.</li> <li>find a good font set to use for the site. I like this one, but I feel like it should have more of an !umph! to it.</li> <li>decide on the color scheme.</li> </ol> <p>I reminded myself how <code>em</code> and <code>rem</code> work by reading <a href="https://blog.logrocket.com/using-em-vs-rem-css/#:~:text=em%20is%20a%20CSS%20unit,relative%20to%20a%20set%20value.">Lawrence Eagles's &quot;Using em vs. rem in CSS on LogRocket</a></p> <p>Still not totally sure how they work, but they are relative!</p> <h2 id="getting-reverse-filter-working-on-the-post-list" tabindex="-1">Getting <code>reverse</code> filter working on the post list</h2> <p>My problem was that I wasn't actually using Nunjucks as my templating language, since Eleventy uses Liquid by default. This led to my function's filter not working at all.</p> <p>I changed my <code>.eleventy.js</code> configuration to such:</p> <pre class="language-json"><code class="language-json">return <span class="token punctuation">{</span><br> dir<span class="token operator">:</span> <span class="token punctuation">{</span><br> input<span class="token operator">:</span> <span class="token string">"src"</span><span class="token punctuation">,</span><br> output<span class="token operator">:</span> <span class="token string">"public"</span><span class="token punctuation">,</span><br> <span class="token punctuation">}</span><span class="token punctuation">,</span><br> templateFormats<span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"md"</span><span class="token punctuation">,</span> <span class="token string">"njk"</span><span class="token punctuation">,</span> <span class="token string">"html"</span><span class="token punctuation">]</span><span class="token punctuation">,</span><br> markdownTemplateEngine<span class="token operator">:</span> <span class="token string">"njk"</span><span class="token punctuation">,</span><br> htmlTemplateEngine<span class="token operator">:</span> <span class="token string">"njk"</span><span class="token punctuation">,</span><br> dataTemplateEngine<span class="token operator">:</span> <span class="token string">"njk"</span><span class="token punctuation">,</span><br> <span class="token punctuation">}</span>;</code></pre> <p>And it works!</p> <p><strong>Update</strong>: I detailed earlier that I shouldn't have used this, so now it's been changed to normal flow.</p> <h2 id="adding-language-filtering-for-posts" tabindex="-1">Adding language filtering for posts</h2> <p>If nothing else has been developed then I have to follow instructions laid out here: <a href="https://github.com/11ty/eleventy/issues/504">https://github.com/11ty/eleventy/issues/504</a>.</p> <h2 id="css-for-readability" tabindex="-1">CSS for readability</h2> <p>I want to check out <a href="https://piccalil.li/tutorial/improve-the-readability-of-the-content-on-your-website/">Andy Bell's &quot;Improve the readability of the content on your website&quot;</a> for CSS tips - especially about creating more space between content.</p> <p>Not all of it is something I want to incorporate, so I have to go through it with time.</p> <h2 id="pagination" tabindex="-1">Pagination</h2> <p>I will use <a href="https://shivjm.blog/when-to-use-pagination-in-eleventy/">Shiv's instructions</a> on this.</p> <p><strong>Update</strong>: Apparently it's really important you use the <code>alias: posts</code> when referring to <code>collections.post</code>. I couldn't get it working until I included it in the front matter.</p> <p>Now the pagination works (with 5 posts per page) and you can move between pages that show posts! The hiccup now is that they are out of order... I think this is mainly Netlify CMS's fault on how it dates posts, so I have to look into that.</p> <p><strong>Update 2</strong>: This is embarrasing... If I had just read the documentation on Eleventy's site on <a href="https://www.11ty.dev/docs/pagination/#modifying-the-data-set-prior-to-pagination">&quot;Modifying the data set prior to pagination&quot;</a>, I would have understood that you shouldn't reverse the whole <code>collections.post</code>, but use <code>reverse: true</code> in the blog's <code>index</code> file. Well, now it's sorted.</p> <h2 id="excerpts" tabindex="-1">Excerpts</h2> <p>I added excerpts to be shown on the blog page, so the reader can have a taste of the contents before committing to reading it. I followed <a href="https://www.jonathanyeong.com/garden/excerpts-with-eleventy/">Jonathan Yeong's instuctions on excerpts</a> and I got it working!</p> <p>Now that I think about it, it might cause a problem if I want to use a table of contents for each post, since that would be the first text on each post. Maybe I can get the function to ignore the table of contents somehow.</p> <h2 id="screen-reader-only-text" tabindex="-1">Screen reader only text</h2> <p>I already used screen reader only text in the &quot;Skip to content&quot; link at the top of the page, but now I needed to just hide text.</p> <p>I am using this on my blog page, where after an excerpt you can decide to read the post. For a sighter user the position of &quot;Continue reading&quot; would make it obvious that you are going to move to the post with the title. For a person with blindness it might be harder to understand the context. So, now every &quot;Continue reading&quot; link actually contains hidden text that is simply the title of the post again.</p> <h2 id="tabbing-out" tabindex="-1">Tabbing out</h2> <p>I am figuring out if opening links to new tabs is accessible or not.</p> <p>This is something I prefer, but it might not be the best solution: <a href="https://codersblock.com/blog/external-links-new-tabs-and-accessibility/">Coder's block write up about opening new tabs</a>.</p> <h2 id="using-labels" tabindex="-1">Using labels</h2> <p>I want to check out <a href="https://www.w3.org/WAI/ARIA/apg/practices/names-and-descriptions/">W3's instructions on labels</a>. Should be interesting!</p> <h2 id="tagging-tag-link-and-tag-pages" tabindex="-1">Tagging, tag link and tag pages</h2> <p>I am following <a href="https://github.com/11ty/eleventy-base-blog">11ty's base blog (GitHub)</a> to implement pages that show all posts with a specific tag.</p> <h2 id="sharing-posts-to-social-media" tabindex="-1">Sharing posts to social media</h2> <p>I followed Raymond Camden's solutions to this by reading the blog post <a href="https://www.raymondcamden.com/2022/08/22/adding-social-share-links-in-eleventy">Adding Social Share Links in Eleventy</a>. I include this function to every blog post for easy sharing.</p> <p>Because I post in English and Finnish, I have included an if-else statement. <code>If</code> the post has a language attribute (because posts can only have <code>lang=&quot;fi&quot;</code>, English is the default) then it produces a Finnish text for sharing. <code>Else</code> statement produces the default English text.</p> <p>I included optional classes to style it later, if I want.</p> <pre class="language-html"><code class="language-html">[nunjucks if statement]<br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h2</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>share-h<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Jaa someen<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h2</span><span class="token punctuation">></span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>ul</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>share<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span><br> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://twitter.com/intent/tweet?url=https://samimaatta.fi/en/building-blocks-for-my-first-eleventy-site/&amp;text=Building blocks for my first Eleventy site<span class="token punctuation">"</span></span><br> <span class="token punctuation">></span></span>Jaa Twitterissä<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><br> <span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span><br> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://www.linkedin.com/sharing/share-offsite/?url=https://samimaatta.fi/en/building-blocks-for-my-first-eleventy-site/<span class="token punctuation">"</span></span><br> <span class="token punctuation">></span></span>Jaa LinkedInissä<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><br> <span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>ul</span><span class="token punctuation">></span></span><br>[nunjucks else statement]<br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h2</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>share-h<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Share<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h2</span><span class="token punctuation">></span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>ul</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>share<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span><br> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://twitter.com/intent/tweet?url=https://samimaatta.fi/en/building-blocks-for-my-first-eleventy-site/&amp;text=Building blocks for my first Eleventy site<span class="token punctuation">"</span></span><br> <span class="token punctuation">></span></span>Share on Twitter<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><br> <span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span><span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span><br> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>https://www.linkedin.com/sharing/share-offsite/?url=https://samimaatta.fi/en/building-blocks-for-my-first-eleventy-site/<span class="token punctuation">"</span></span><br> <span class="token punctuation">></span></span>Share on LinkedIn<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><br> <span class="token punctuation">></span></span><br> <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span><br><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>ul</span><span class="token punctuation">></span></span><br>[nunjucks endif statement]</code></pre> <h2 id="anonymous-feedback-form" tabindex="-1">Anonymous feedback form</h2> <p>Because of <a href="https://www.gwern.net/About#anonymous-feedback">gwern</a>.</p> </content>
</entry>
<entry xml:lang="fi">
<title>Luokkaloikkari! Pelkäätkö, että jonain päivänä paljastut?</title>
<link href="https://samimaatta.fi/kirjoitukset/luokkaloikkari-pelkaatko-etta-jonain-paivana-paljastut/"/>
<updated>2022-08-15T11:13:07Z</updated>
<id>https://samimaatta.fi/kirjoitukset/luokkaloikkari-pelkaatko-etta-jonain-paivana-paljastut/</id>
<content type="html"><!--StartFragment--> <p>Alkuperäinen julkaisu: <a href="https://www.linkedin.com/posts/samimaat_luokkaloikkari-pelk%C3%A4%C3%A4tk%C3%B6-ett%C3%A4-jonain-p%C3%A4iv%C3%A4n%C3%A4-activity-6962286349877952513-4sh-?utm_source=linkedin_share&amp;utm_medium=member_desktop_web">Luokkaloikkari! Pelkäätkö paljastuvasi? (LinkedIn)</a>.</p> <p>Minulla oli vaihe elämässäni, kun odotin hetkeä, jolloin paljastuisin huijariksi.</p> <p>Tai, että saamani työpaikka olisi paremmissa käsissä jollakin toisella.</p> <p>En siis kokenut olevani yhtä hyvä kuin joku mystinen MUU, jollakin tapaa pätevämpi ihminen.</p> <p>Opiskellessani opettajaksi saatoin ajatella, että jonkun muun pitäisi olla paikallani.</p> <p>Nykyisessä työssäni ajattelin, että jonkun, joka oikeasti osaa jotain saavutettavuudesta, tulisi olla paikallani – tai, että olisin vähintään “kirjastoihminen”.</p> <p>Eräänä kertana, kun otin asian puheeksi, niin minulta kysyttiin pysäyttävästi: “Kuka tämä muu ihminen olisi? Missä olisit ellet siinä?”</p> <p>Jotenkin nämä sanat ovat alkaneet kääntää ajatteluani toiselle mallille: “Miksipä se en olisi minä?”</p> <p>Maailmassa on varmasti ihmisiä, jotka menevät ja tekevät vähemmillä tiedoilla ja taidoilla kuin minä itse. Miksi en siis antaisi itselleni lupaa tuntea ylpeyttä ja varmuutta omistani?</p> <h2 id="tyolaistaustaisten-naisten-huijaritunteet" tabindex="-1">Työläistaustaisten naisten huijaritunteet</h2> <p>Mari Käyhkö käsittelee seuraavassa tutkimusartikellissa muun muassa työläistaustaisten naisten huijaritunteita yliopistotyössään.</p> <p>Tutkimusartikkeli: “Käyhkö, Mari (2020). “Osaanko mä nyt olla tarpeeks yliopistollinen?”: työläistaustaiset yliopisto-opettajanaiset ja luokan kokemukset”</p> <p>(Hän korostaa artikkelissa luokkaa psykososiaalisena ilmiönä, joka muokkaa yksilön minuutta. Luokan ei siis tule olettaa näkyä yksinomaan ulkopuolelta – tai materian ja varallisuuden kautta. Se on kulttuuria ja sosiaalistumista.)</p> <p>Kokemukset ja käsitykset siitä, mitä on “oikea työ” muokkaavat monien vuosien jälkeenkin naisten suhtautumista omaan työhönsä.</p> <p>Artikkelin naiset kuvaavat itsensä ulkopuolisiksi yliopistossa ja vertaavat itseään “akateemiseen ideaaliin”: Henkilöön, joka on sosiaalisesti sulava verkostoituja, jolla on akateeminen tausta, eikä tällä tule mieleenkään kyseenalaistaa omaa asemaansa. Erityisesti tämän taustan kuvitellaan antavan yliopistomaailmassa tarvittavan itsevarmuuden ja huolettomuuden.</p> <p>Naiset kokevat “huijanneensa” tiensä yliopistoon ja menestyneensä “vahingossa” opinnoissaan. Jatko-opiskelemaankin he ovat päätyneet huomaamattaan, kun joku on ehdottanut sitä tai tarjonnut töitä.</p> <p>Kasvaminen uuteen identiteettiin ei ole nopeaa. Kokemukset omasta asiantuntijuudesta nähdään irrallisina oikeasta minästä. Naiset kuvailevat miten oman konferenssiesityksenkin aikana he ikään kuin seuraavat ulkoapäin, kun joku asiantuntija puhuu.</p> <p>Naiset ovat huomanneet huijaritunteiden helpottuneen, mitä enemmän ura on kulkenut eteenpäin. Mitä enemmän mahdollisuuksia näyttää omaa osaamistaan on tullut, niin sitä varmemmaksi toimintakin on käynyt.</p> <p>Naiset eivät siedä asiantuntijuutensa vähättelyä ja tietävät olevansa päteviä, mutta takaraivossa silti kolkuttaa eriasteiset huijaritunteet.</p> <!--EndFragment--> </content>
</entry>
<entry xml:lang="en">
<title>Accessible molecule diagram on the web</title>
<link href="https://samimaatta.fi/en/accessible-molecule-diagram-on-the-web/"/>
<updated>2022-08-13T11:12:19Z</updated>
<id>https://samimaatta.fi/en/accessible-molecule-diagram-on-the-web/</id>
<content type="html"><!--StartFragment--> <p>Originally published as a <a href="https://www.linkedin.com/posts/samimaat_accessible-diagram-of-%CE%B2-maltose-activity-6965283545745358848-kBFc?utm_source=linkedin_share&amp;utm_medium=member_desktop_web">LinkedIn post on accessible molecule diagram</a>.</p> <p>The future is here! Now you can listen to molecule diagrams.</p> <p>Check out my implementation of it here: <a href="https://samimaat.github.io/accessible_maltose.html">Accessible diagram of β-Maltose</a>.</p> <p>Actually the future has been here for quite some time.</p> <p>The above was made with Progressive Access’s tool:</p> <ol> <li>Make an account.</li> <li>Find a suitable chemical compound and use a file type such as Smiles, InChi, InChi Key or Mol.</li> <li>Upload it to their converter.</li> <li>Get a SVG diagram or a HTML snippet. (I got the HTML snippet.)</li> <li>Host it on your website.</li> </ol> <p>Find out more on <a href="https://progressiveaccess.com/chemistry/">Progressive Accesses Accessible Chemical Diagrams</a>.</p> <h2 id="what-to-do-with-them" tabindex="-1">What to do with them?</h2> <p>You could embed them into your ebook or plainly link to your site that hosts them (like I did before).</p> <p>Or do what <a href="https://www.linkedin.com/company/dedicon/">Dedicon</a> did: Localize it, build a pedagogical model around it and release it to all to see. Check out <a href="https://goedekennis.dedicon.nl/alle-artikelen/structuurformules-de-inleiding">Dedicon’s website on chemistry (Dutch)</a>.</p> <!--EndFragment--> </content>
</entry>
<entry xml:lang="fi">
<title>Näin teet selkeän digioppimateriaalin</title>
<link href="https://samimaatta.fi/kirjoitukset/nain-teet-selkean-digioppimateriaalin/"/>
<updated>2022-08-12T11:11:23Z</updated>
<id>https://samimaatta.fi/kirjoitukset/nain-teet-selkean-digioppimateriaalin/</id>
<content type="html"><!--StartFragment--> <p>Julkaistu alunperin LinkedInissä: <a href="https://www.linkedin.com/posts/samimaat_t%C3%A4%C3%A4lt%C3%A4-tulee-viikon-saavutettavuusvinkit-activity-6945254066935480322-dlRm/?utm_source=linkedin_share&amp;utm_medium=member_desktop_web">Millainen on selkeä digioppimateriaali?</a></p> <p>Tätä lähestyäkseen täytyy ensin puhua sen tuomista mahdollisuuksista.</p> <ul> <li>Video- ja ääniupotukset, ääneen luetut osuudet</li> <li>Dynaamiset tehtävät (automaattitarkistus, monivalinta, “klikkaa ja raahaa”, täydennä, yms.)</li> <li>Ei painetun kirjan rajoituksia (sivumäärä tai rakenne ei ole rajattu)</li> </ul> <p>Viimeisin näistä on erityisen tärkeä. Siinä missä painettu kirja on rajoittanut kirjoittajan työtä, niin nyt samaa ei ole – ja digimateriaalin tuomat mahdollisuudet ovat luoneet myös uhkia saavutettavuudelle.</p> <p>Painetussa kirjassa pääsi joko eteen- tai taaksepäin. Digimateriaalissa voi periaatteessa siirtyä ylös, alas, oikealle, vasemmalle ja viistoon. Erityisesti ihmiselle, jolla on hahmotusvaikeuksia tällainen rakenne voi olla hyvin hankala.</p> <p>Mitä voi siis tehdä, että digioppimateriaali olisi selkeämpi?</p> <h2 id="1-kayttaja-ei-saa-tuntea-olevansa-hukassa" tabindex="-1">1. Käyttäjä ei saa tuntea olevansa hukassa</h2> <p>Miten tämä tehdään? Vaihtoehtoja on monia, mutta tee ainaki näin:</p> <ul> <li>Käytä kuvitteellisia sivunumeroita.</li> <li>Mahdollista sisällysluetteloon pääsy materiaalin joka kohdassa. Parempi, jos sisällysluettelo on jollain tapaa koko ajan näkyvissä.</li> </ul> <p>Testaa materiaaliasi: Mieti, että sinut heitettäisiin keskelle digioppimateriaalia. Tietäisitkö sivua tutkimalla, että missä kohtaa kirjaa olet?</p> <p>Eräässä materiaalissa oli koko kirjan kattava sisällysluettelo, ja joka luvussa vielä oma sisäinen sisällysluettelonsa. Tämä helpotti oman paikkansa seuraamista huomattavasti.</p> <h2 id="2-digioppimateriaalissa-taytyy-olla-kayttoohjeet" tabindex="-1">2. Digioppimateriaalissa täytyy olla käyttöohjeet</h2> <p>Tee ainakin nämä perusjutut:</p> <ul> <li>Kuvaile, millainen rakenne materiaalilla on. Onko jotain toistuvaa rakennetta?</li> <li>Selitä käyttämäsi symbolit.</li> </ul> <p>Saavutettavuusvinkki: Älä käytä ikinä pelkkää symbolia, vaan myös tekstiä.</p> <h2 id="3-tee-rakenteesta-lineaarinen" tabindex="-1">3. Tee rakenteesta lineaarinen</h2> <p>Kuvittele, että digioppimateriaali olisi painettu kirja. Tee sisällöt ja rakenne sellaiseksi, että käyttäjä kulkee niiden kaikkien läpi jossain vaiheessa.</p> <p>Sijoita lisäaineistot materiaalin loppuun – älä yksittäisen sivun viereen, jolloin niitä ei voi löytää muualta.</p> <p>Jos linkkaat materiaalin sisällä, niin mahdollista aina palaaminen samaan paikkaan, josta lähdit.</p> <h2 id="4-hot-tip-sisallyta-kuvan-tieto-myos-tekstina" tabindex="-1">4. Hot tip: Sisällytä kuvan tieto myös tekstinä</h2> <p>Jos käytät kuvia, joissa on kaavioita, niin selitä ne vielä auki tekstissä. Tämä tukee näkövammaista ja aivan ketä tahansa käyttäjää.</p> <h2 id="pyyda-apua" tabindex="-1">Pyydä apua</h2> <p>Jos teet digioppimateriaalia tai muutoin digitaalisia sisältöjä, niin ota minuun yhteyttä sivulla <a href="https://www.quenched.fi/contact/">Contact</a>! Pohditaan yhdessä, että miten saamme aikaan selkeämpää ja saavutettavampaa materiaalia.</p> <!--EndFragment--> </content>
</entry>
<entry xml:lang="fi">
<title>Luokkaloikkari! Eikö olisi jo aika tehdä oikeita töitä?</title>
<link href="https://samimaatta.fi/kirjoitukset/luokkaloikkari-eiko-olisi-jo-aika-tehda-oikeita-toita/"/>
<updated>2022-08-11T11:10:40Z</updated>
<id>https://samimaatta.fi/kirjoitukset/luokkaloikkari-eiko-olisi-jo-aika-tehda-oikeita-toita/</id>
<content type="html"><p>Julkaistu alunperin LinkedInissä: <a href="https://www.linkedin.com/posts/samimaat_luokkaloikkari-eik%C3%B6-olisi-jo-aika-tehd%C3%A4-activity-6959909008543477760-w6WI/?utm_source=linkedin_share&amp;utm_medium=member_desktop_web">Oikeat työt</a>.</p> <p>Oikeat työt ovat konkreettisia ja fyysisiä. Jos et ole työpäivän jälkeen rättiväsynyt, niin teitkö oikeastaan töitä ollenkaan?</p> <p>Istut toimistossa ruudun edessä samalla, kun joku muu tekee työtä, jolla on merkitystä ja työn jäljen näkee.</p> <p>Sinulle maksetaan enemmän, mutta teet vähemmän ja pääset helpommalla. Samaan aikaan joku muu sentään raataa palkkansa eteen ja valittelee kipeitä jalkojaan – ja syystä.</p> <p>Sinulla on “aivosumua” – vaikka et edes tee liikaa töitä.</p> <p>Missä työsi jälki näkyy? Mitä hyötyä on teoriasta, kun et ikinä sovella sitä käytäntöön?</p> <p>Suunnittelet ja suunnittelet, mutta huomaat, että suunnitelmasi eivät kestä oikeaa elämää.</p> <p>Et kuulosta akateemiselta. Et myöskään näytä siltä. Kuka pitää tuollaisia vaatteita tällaisessa tilaisuudessa?</p> <p>Olet varmaan vahingossa päätynyt asemaasi. Pärjäsit koulussa, mutta senkin teit varmaan vain täpärästi.</p> <p>Parempi jättää yrittämättä, että et tuota itsellesi taas pettymystä.</p> <p>Onneksi perheesi ei ymmärrä siitä tuon taivaallista.</p> <p>Harmi, että perheesi ei ymmärrä, mitä koet.</p> <p>Sinun pitäisi olla itsevarmempi. Ottaa tila itsellesi. Markkinoida itseäsi. Esiintyä eduksesi.</p> <p>Sen sijaan imitoit jotakuta, jonka sinun kuuluisi olla.</p> <p>Samalla et kuitenkaan halua olla kukaan muu kuin itsesi.</p> <p>Joku muu sopisi tilallesi paremmin – joku pätevämpi.</p> <p>Kuka olet? Puhutko itsellesi näin?</p> </content>
</entry>
<entry xml:lang="fi">
<title>Luokkaloikkari! Oletko itsesi suurin jarruttelija?</title>
<link href="https://samimaatta.fi/kirjoitukset/luokkaloikkari-oletko-itsesi-suurin-jarruttelija/"/>
<updated>2022-08-10T11:08:46Z</updated>
<id>https://samimaatta.fi/kirjoitukset/luokkaloikkari-oletko-itsesi-suurin-jarruttelija/</id>
<content type="html"><!--StartFragment--> <p>Julkaistu alunperin LinkedInissä: <a href="https://www.linkedin.com/posts/samimaat_luokkaloikkari-oletko-itsesi-suurin-jarruttelija-activity-6957241962244521984-jUtI/?utm_source=linkedin_share&amp;utm_medium=member_desktop_web">Luokkariloikkariko jarruttelee itseään?</a></p> <p>Minä olen.</p> <p>Epäilen toimia, koska en usko, että</p> <ol> <li>yllän asettamiini tavoitteisiin,</li> <li>tuotan mitään arvokasta tai</li> <li>oikeasti osaisin ‘mitään.’</li> </ol> <p>Huomaan olevani itseni jarruttelija. Epäilen, että “saankohan tehdä” tai “pitäisikö edes yrittää”.</p> <p>Käyhkö käsittelee artikkelissaan jarruja ja kynnyksiä, joita luokkaloikkarit ovat luoneet itselleen. Niitä ylitetään päivittäin.</p> <p>Minun kynnystäni on laskenut, kun olen saanut olla osana yhteisöjä, joissa tekemisen ajattelumalli on ollut vahva.</p> <p>Minulle tällainen on ollut Kehittäjävalmennus-porukka. Tai välillä työkaveri, joka toteaa “no, eiköhän vain tehdä”.</p> <p>Käyhkö käsitteli artikkelissaan yliopistoon hakeutumista ja samalla työläistaustaisen toimijuuden kokemusta. Toimijuuteen liittyvät rajoittavat ajattelumallit erityisesti vetosivat minuun, joten tästähän piti tehdä oma postauksensa!</p> <h2 id="yksilollistetty-luokka-ja-mielensisaiset-esteet" tabindex="-1">Yksilöllistetty luokka ja mielensisäiset esteet</h2> <p>Tutkimusartikkeli: “Käyhkö, Mari (2013). Hivuttautuen kohti vierasta maailmaa: työläistyttöjen tie yliopistoon.”</p> <p>Käyhkö puhuu artikkelissa ‘yksilöllistetystä luokasta’:</p> <p>Luokka ei ole välttämättä asia, joka ilmenee ulkoisesti muiden toimesta, vaan “luokkataistelut käydään pitkälti oman pään sisällä —.”</p> <p>Hän kertoo:</p> <p>“Naiset tekevät ulospäin näkymätöntä emotionaalista työtä ja käyvät mielen sisäisiä neuvotteluja itsensä kanssa, jotta uskaltaisivat ottaa sen maailman haltuun, mikä on toisille itsestään selvyys. Hiljalleen rakentuneet ja osin rajoittavat (väärin)käsitykset itsestä — voivat tukahduttaa toimijuutta.”</p> <p>Tämä johtaa myös siihen, että epäonnistumiset nähdään omina ominaisuuksina, eikä sosiaalisena eriarvoisuutena.</p> <p>Se voi vaikuttaa esimerkiksi koulutusvalintoihin, kun naiset ovat rajanneet itseltään pois joitain vaihtoja tai tyytyneet tekemään jotain, mitä eivät ole oikeasti halunneet.</p> <!--EndFragment--> </content>
</entry>
<entry xml:lang="fi">
<title>Luokkaloikkari! Onko matkasi ollut suora vai mutkikas?</title>
<link href="https://samimaatta.fi/kirjoitukset/luokkaloikkari-onko-matkasi-ollut-suora-vai-mutkikas/"/>
<updated>2022-08-09T11:07:58Z</updated>
<id>https://samimaatta.fi/kirjoitukset/luokkaloikkari-onko-matkasi-ollut-suora-vai-mutkikas/</id>
<content type="html"><!--StartFragment--> <p>Julkaistu alunperin LinkedInissä: <a href="https://www.linkedin.com/posts/samimaat_luokkaloikkari-onko-matkasi-ollut-suora-activity-6956161765885816832-u4YE/?utm_source=linkedin_share&amp;utm_medium=member_desktop_web">Luokkaloikkarin matka</a>.</p> <p>Olisin mennyt ammattikoulun kautta ympäristötöiden pariin, jos työhön tutustuttajani olisi soittanut minulle 8. luokan jälkeisenä kesänä. Olin sanonut opinto-ohjaajalle tykkääväni luonnosta, ja niin tykkäsinkin, koska lapsena suurin osa vapaa-ajasta kuluikin siellä. Pienessä kylässä ei paljoa muuta tekemistä ollutkaan.</p> <p>Kävikin niin, että menin kylän lukioon, että saisin vielä lisäaikaa miettiä, mitä haluaisin tehdä.</p> <p>Spoiler: En tiennyt lukiossakaan tai lukion jälkeen, mitä halusin tehdä.</p> <p>Huomasin kuitenkin olevani hyvä matematiikassa, joten minun kai kannatti opiskella jotain siihen liittyvää. Kirjoitin YO-kokeessa pitkästä matematiikasta E:n, joten pääsin opiskelemaan Oulun yliopistoon matematiikalle. Muistana ajatelleeni: “Minusta ei ainakaan tule matematiikan tutkijaa”, joten luontevaa oli opiskella opettajaksi.</p> <p>Aineenopettajan tutkintopolku on aika tarkkaan määritetty putki, joten uuteen elämään ja ympäristöön tutustuessa sitäkään ei ehtinyt paljoa kyseenalaistaa. Lopulta valmistuinkin matematiikan (ja fysiikan ja [melkein] kemian) aineenopettajaksi.</p> <p>En koe, että olen juurikaan suunnitellut omaa polkuani.</p> <p>Mari Käyhkö käsittelee tällä kertaa toimijuuden kysymyksiä: Koetaanko, että ollaan ajauduttu vai hakeuduttu? Miten ja miksi?</p> <h2 id="mutkat-matkassa" tabindex="-1">Mutkat matkassa</h2> <p>Tutkimusartikkeli: “Käyhkö, Mari (2013). Hivuttautuen kohti vierasta maailmaa: työläistyttöjen tie yliopistoon.”</p> <p>Käyhkö siteeraa muita tutkimuksia, että ‘akateemisessa’ perheessä akateemisuus on itsestäänselvyys: “Todennäköisyys mennä yliopistoon on 8-kertainen akateemisesti koulutetun perheen lapsella verrattuna ei-akateemisen perheen lapseen.”</p> <p>Työläistaustaiset naiset kuvailivat polkuaan yliopistoon eri tavoin:</p> <p>Vain menty. Haahuiltu. Poukkoiltu. Päädytty.</p> <p>Kuulostaako tutulta?</p> <p>Kokemuksissa myös korostuu, miten he ovat olleet yksin koulutusta koskevian asioiden kanssa. Sen seurauksena koulutusvalinnat ovat tuntuneet sattumanvaraisilta, ja suunnan hakemiselta pienistä vihjeistä tai päähänpistoilta.</p> <p>Ei-akateemisessa perheessä kasvaneilla koulutusvalinnat ovat olleet “olosuhdeherkkiä ja vaikutuksille alttiita”. Elämäntilanteet ovat ohjanneet, mitä koulupolulla tehdään seuraavaksi. Kotipaikkakunnalle on saatettu jäädä esimerkiksi perheen tueksi.</p> <p>Mutkikkaamman matkan tehneet naiset ovat kokeneet tulleensa rajoitetuiksi ja lähipiirinsä ohjailtaviksi. Lähipiirin näkemyksiä ei olla kyseenalaistettu.</p> <p>Matkoja on siis monenlaisia, mutta yhteistä niille on</p> <ol> <li>koulumenestys,</li> <li>koulumyönteiset keskiluokkaiset kaverit ja</li> <li>“tiedonjano”.</li> </ol> <p>Näiden myötä naiset ovat pikku hiljaa hivuttautuneet kohti yliopistoa. Joidenkin matka on ollut mutkikkaampi, pidempi ja epävarmempi.</p> <!--EndFragment--> </content>
</entry>
<entry xml:lang="fi">
<title>Luokkaloikkari! Miten perheessäsi suhtauduttiin koulunkäyntiin?</title>
<link href="https://samimaatta.fi/kirjoitukset/luokkaloikkari-miten-perheessasi-suhtauduttiin-koulunkayntiin/"/>
<updated>2022-08-08T11:07:01Z</updated>
<id>https://samimaatta.fi/kirjoitukset/luokkaloikkari-miten-perheessasi-suhtauduttiin-koulunkayntiin/</id>
<content type="html"><!--StartFragment--> <p>Julkaistu alunperin LinkedInissä: <a href="https://www.linkedin.com/posts/samimaat_luokkaloikkari-miten-perheess%C3%A4si-suhtauduttiin-activity-6938912744553259008-1KWV/?utm_source=linkedin_share&amp;utm_medium=member_desktop_web">Luokkaloikkarin koulunkäynti</a>.</p> <p>Kotona minua ei erityisesti kannustettu opiskelemaan tai jatkamaan kouluja pitkälle. Toisaalta opiskeluani ei myöskään nähty huonona asiana.</p> <p>Sain aina pienen rahapalkkion hyvästä numerosta kokeessa. Sain myös tehdä rauhassa läksyjäni, mutta niissä ei erityisesti autettu.</p> <p>Koulutusta siis arvostettiin perheessäni. Tästä olen kiitollinen.</p> <p>Itä-Suomen yliopiston tutkija Mari Käyhkö on tutkinut erityisesti naisten luokkaloikkaamista työläistaustasta.</p> <p>Tutkimusartikkeli: “Käyhkö, Mari (2011). Vieras omassa perheessä. Koulussa hyvin menestyneiden tyttöjen koulunkäynti työläisperheessä.”</p> <p>Hänen tutkimusartikkelissaan esitellään kolme tapaa, miten perheet ovat suhtautuneet tyttönsä koulunkäyntiin.</p> <h2 id="1-koulutus-on-avain-helpompaan-elamaan" tabindex="-1">1. Koulutus on avain helpompaan elämään</h2> <p>“Koulunkäyntiin on suhtauduttu avoimen myönteisesti.”</p> <p>Lukiolla on ollut erityinen asema ja se on merkkipaalu parempaan elämään pääsemisestä. Korkeakouluopinnoista ei kuitenkaan puhuttu.</p> <p>Ajatukset perheen tytöstä ovat tiivistyneet lauseeseen: “Sullahan on tota lukupäätä.”</p> <h2 id="2-opiskeluintoa-tai-haaveita-on-vahatelty" tabindex="-1">2. Opiskeluintoa tai haaveita on vähätelty</h2> <p>Jos tyttö halusi keskittyä koulunkäyntiin, niin siitä ennemminkin rangaistiin tai sitä piti peitellä.</p> <p>Perhe-elämän säröisyys hankaloitti koulunkäyntiin keskittymistä. Keskeinen tavoite opiskelemaan pääsemisesä oli etäisyyden ottaminen perheeseen ja kotipaikkakuntaan.</p> <p>Tämän taustan naisilla tie korkeakouluun ei ole ollut suoraviivainen, vaan “on menty vaikeimman kautta”.</p> <h2 id="3-koulunkaynti-yksi-asia-muiden-joukossa" tabindex="-1">3. Koulunkäynti yksi asia muiden joukossa</h2> <p>Perheessä ei pidetty koulunkäyntiä prioriteettina. Se oli hyvä asia, mutta vain tiettyyn pisteeseen asti.</p> <p>Näin yhteistä keskustelua koulunkäynnistä oli hankala käydä, eikä sen tukemiseen ollut aikaa – tai osaamista. Perheessä arvostettiin ‘oikeita töitä’ ja työn ääreen pääsemistä. Itsestään ei sopinut luulla liikoja tai olla kunnianhimoinen.</p> <p>Tunnistatko itsesi jostain tarinasta?</p> <p>Miten tukisit itseäsi, jos voisit palata ajassa taaksepäin?</p> <!--EndFragment--> </content>
</entry>
<entry xml:lang="fi">
<title>Luokkanousu, luokkaloikkari, luokkamatka…</title>
<link href="https://samimaatta.fi/kirjoitukset/luokkanousu-luokkaloikkari-luokkamatka/"/>
<updated>2022-08-07T11:06:13Z</updated>
<id>https://samimaatta.fi/kirjoitukset/luokkanousu-luokkaloikkari-luokkamatka/</id>
<content type="html"><!--StartFragment--> <p>Alkuperäinen julkaisu: <a href="https://www.linkedin.com/posts/samimaat_nyt-minua-askarruttaneella-asialla-on-nimi-activity-6934855568146747392-R2rp/?utm_source=linkedin_share&amp;utm_medium=member_desktop_web">Luokkanousu (LinkedIn)</a>.</p> <p>Nyt minua askarruttaneella asialla on nimi:</p> <p>Luokkaretki, luokkamatka tai &quot;luokkanousu&quot;.</p> <p>En ole osannut aiemmin lähestyä tätä aihetta.</p> <p>Osaksi, että se on varmaan liian lähellä. Osaksi, että se on toisaalta liian abstrakti. Osaksi, että se tuntuu pienestä nillittämiseltä – etuoikeuksineen kaikkineen.</p> <p>Ilmeisesti myöskään ei ole tunnustettu, että Suomi olisi luokkayhteiskunta. Olemmehan tasa-arvoisten mahdollisuuksien maa.</p> <p>Olen pienituloisesta perheestä. Menin korkeakouluun ja tupsahdin aivan erilaiseen maailmaan, jonka sääntöjä ei tiennyt etukäteen.</p> <p>Huomasin kuitenkin nopeasti, että jotkut muut eivät edes tunnustaneet näiden sääntöjen olemassaoloa ja pitivät niitä itsestäänselvinä.</p> <p>Tällaisia sääntöjä olivat asuminen omakotitalossa, asuntolainan ottamisen itsestäänselvyys, vakuutusten osto ja käyttö ja sen sellaiset muut pienet jutut.</p> <p>Keskituloiseksi (tai keskiluokkaan) päästyäni huomaan edelleen hämmentävän minua. Itsestäänselvinä pidettäviä asioita tulee aika ajoin vastaan, jotka edelleen ihmetyttävät.</p> <p>On tietoja ja taitoja, joita ei ole tietystä taustasta tulleena.</p> <!--EndFragment--> </content>
</entry>
<entry xml:lang="fi">
<title>Miten pitää mielekäs työpaja?</title>
<link href="https://samimaatta.fi/kirjoitukset/miten-pitaa-mielekas-tyopaja/"/>
<updated>2022-08-06T11:05:00Z</updated>
<id>https://samimaatta.fi/kirjoitukset/miten-pitaa-mielekas-tyopaja/</id>
<content type="html"><!--StartFragment--> <p>Pidin huhtikuussa 2022 työpajan, josta työpajojen inhoajakin totesi “Tämähän oli oikein kiva!” Paljastan, miten sen tein!</p> <p>Työpaja pidettiin virtuaalisesti Teamsissä ja käytin Googlen Jamboardia eli virtuaalista fläppitaulua. Työpaja kesti yhden tunnin. Sen aikana keskusteltiin yhdessä ja pienryhmissä.</p> <p>Aluksi kirkastin, että mitä työpaja käsittelee ja mikä sen lopputuote on: Ideoimme vastuullisuustoimenpiteitä ja lopulta meillä on Word-dokumentti, jossa toimenpiteet on vastuutettu niistä päättäville henkilöille.</p> <p>Sovimme, että millaiset säännöt keskustelussa on ja, että fasilitoijana minä annan ja tarvittaessa rajaan puheenvuoroja. Pyrin omalla olemuksellani (rento ja positiivinen) luomaan kivan keskusteluilmapiirin. Jututan työkavereita ennen työskentelyä.</p> <p>Esittelin työpajan rungon ennen työskentelyä:</p> <ol> <li>Ideoimme yksin, sitten yhdessä pienryhmissä ja kirjaamme toimenpiteitä JamBoardille.</li> <li>Keskustelemme yhdessä toimenpiteistä ja työskentelystä.</li> <li>Karsimme hulluimmat ideat pienryhmissä ja keräämme toimivimmat Word-dokumenttiin. Toimenpiteet vastuutetaan henkilöille, joiden tehtäväalueelle ne kuuluvat.</li> <li>Yhteinen keskustelu työpajan kulusta ja fiiliksistä.</li> <li>Mitä tapahtuu seuraavaksi: Vastuutetut henkilöt päättävät, mitkä toimenpiteet ovat toteuttavissa.</li> </ol> <p>Mikä minusta onnistui työpajassa?</p> <ul> <li>Uskalsin luottaa osallistujiin, että tulosta syntyy. Se on juuri sen näköinen, joka sopii kyseiselle ryhmälle.</li> <li>Annoin osallistujien jakaa fiiliksiään työpajan kulusta ja sallin kaikenlaiset mielipiteet. Parempi sanoa ne ääneen kuin jättää sisälle – hyvässä ja pahassa.</li> <li>Tein selkeän rungon työpajan kulusta, sen lopputuotteesta. Hallitsin näin osallistujien odotuksia ja he tiesivät tarkalleen, mitä ollaan tekemässä.</li> </ul> <!--EndFragment--> </content>
</entry>
<entry xml:lang="fi">
<title>[EXPLAINED] Onnistuneen etätapahtuman vinkkilista</title>
<link href="https://samimaatta.fi/kirjoitukset/explained-onnistuneen-etatapahtuman-vinkkilista/"/>
<updated>2022-07-10T19:43:27Z</updated>
<id>https://samimaatta.fi/kirjoitukset/explained-onnistuneen-etatapahtuman-vinkkilista/</id>
<content type="html"><h2 id="tapahtumaa-taytyy-johtaa" tabindex="-1">Tapahtumaa täytyy johtaa</h2> <p>Tapahtumalla täytyy olla fasilitoija tai juontaja, joka huolehtii viestimisestä osallistujien kanssa, hoitaa siirtymät tapahtuman eri vaiheissa ja huolehtii, että tapahtuma etenee.</p> <p>Vähintään yksi fasilitoija tai juontaja tarvitaan, mutta kaksi olisi jo hyvä. Tällöin toinen pitää huolen tapahtuman “sosiaalisesta ulottuvudesta” eli juttelee osallistujien kanssa ja hoitaa siirtymät eri vaiheissa.</p> <p>Toinen järjestäjä toimii “teknisessä ulottuvuudessa” eli huolehtii siitä, että tapahtumakokemus on muuten hyvä esimerkiksi seuraamalla chattia, vastailemalla osallistujien kysymyksiin yleisistä asioista ja viemällä tietoa fasilitoijan korviin.</p> <h2 id="erityisjarjestelyt" tabindex="-1">Erityisjärjestelyt</h2> <p>Erityisjärjestelyt voivat vaikuttaa paljon etätapahtuman kulkuun, joten ne kannattaa tietää hyvissä ajoin.</p> <p>Mahdollisia erityisjärjestelyjä tai huomioita:</p> <ul> <li>Osallistujalla voi olla näkö- tai kuulovamma. Tällöin voit huomioida tapahtuman saavutettavuuden. Esimerkiksi varmistamalla, että puheenvuoron pyytäminen on näkövammaiselta mahdollista tai, että voiko tapahtumassa on automaattisia tekstityksiä.</li> <li>Osallistuja voi haluta tapahtuman materiaalin etukäteen ja jos se on mahdollista tehdä, niin jaa materiaali heille. Mikseipä siis kaikkien osallistujien kesken?</li> <li>Osallistuja ei välttämättä tunne käytettävää videopuhelusovellusta, joten tapahtuman alkuun kannattaa varata harjoitteluaikaa ja tilaa kysymyksille.</li> </ul> <h2 id="viestinta-ennen-tapahtumaa" tabindex="-1">Viestintä ennen tapahtumaa</h2> <p>Tee tekstipohjia, joita voit käyttää myöhemmin uudestaan. Esimerkiksi ilmoittautumislinkin teksti kannattaa suunnitella niin, että se sopii myös sähköpostiviestin pohjaksi. Ei kannata tehdä samaa työtä kahdesti. Samalla kannattaa miettiä, että voisiko samaa tekstipohjaa käyttää myöhemmin uudelleen.</p> <p>Jokaisessa tekstissä kannattaa olla tiedot: Mitä? Missä? Milloin?</p> <p>Lista paikoista, joissa olisi hyvä olla jonkinlainen teksti:</p> <ul> <li>Saateteksti ilmoittautumislinkin kanssa. Esimerkiksi, jos lähetät linkin sähköpostin tai sosiaalisen median alustan kautta.</li> <li>Teksti, joka on ilmoittautumislinkissä. Joku saattaa jakaa linkkiäsi edelleen ilman saatetekstiä.</li> <li>Mahdollinen vastaussähköposti, kun ilmoittautuminen on tehty, jossa on mahdollisia jatko-ohjeita, kuten ennakkotehtävä.</li> <li>Sähköposti, jossa annat tapahtumalinkin.</li> </ul> <p>Ennen tapahtumaa julkaise tapahtuman ohjelma. Erityisesti, jos tapahtuma kestää pitempään kuin tunnin, koska osallistujat haluavat tietää, että mitä heiltä odotetaan ja milloin on TAUKOJA! Tauot ovat ehdottoman tärkeitä etätapahtuman aikana, joten sisällytä jo yli tunnin tapahtumaan ainakin yksi tauko.</p> <p>Ohjelma auttaa osallistujia virittäytymään tapahtumaasi: Odotetaanko heiltä vain kuuntelemista vai myös osallistumista esimerkiksi pienryhmätilojen kautta? Kun osallistujat osaavat ennakoida tapahtuman kulun, niin se myös helpottaa fasilitoijan työtä.</p> <h2 id="tapahtuman-alku" tabindex="-1">Tapahtuman alku</h2> <p>Järjestä aikaa ennen varsinaista tapahtumaa laitteiden testaamista varten. Jos sinulla on vieras, joka tekee esityksen, niin sitäkin tärkeämpää on testata sen toimivuus.</p> <p>Kun osallistujat saapuvat tapahtumaan, niin tapahtuman luonteesta riippuen voit jo vähän herättää keskustelua juttelemalla saapuville. Jutun aiheiden ei tarvitse olla kummoisia: “Mitä ikkunasta näkyy?” on ihan hyvä kysymys, vaikka se tuntuisikin hölmöltä. Tällä tavoin osallistujat virittäytyvät siihen, että tapahtumassa on vuorovaikutusta.</p> <h3 id="yhteiset-pelisaannot" tabindex="-1">Yhteiset pelisäännöt</h3> <p>Osallistujien kanssa on myös hyvä käydä läpi, että tapahtumassa noudatetaan tiettyjä periaatteita. Ne voivat liittyä fasilitoijan valtaan eli esimerkiksi siihen, että fasilitoijalla on oikeus jakaa ja rajoittaa puheenvuoroja, ja muutenkin ohjata tapahtumaa. Lisäksi kannattaa käyttää esimerkiksi <a href="https://alli.fi/palvelut/tyokaluja-nuorisoalalle/turvallisemman-tilan-periaatteet-ja-vihapuheesta-vapaan-keskustelun-saannot/">Turvallisemman tilan periaatteita</a>, jolloin tiedetään, että jokainen on tervetullut tapahtumaan.</p> <p>Olennaista on, että yhteiset pelisäännöt hyväksytään yhdessä. Fasilitoija voi todeta, että “Sitoudutaan näihin sääntöihin yhdessä, kun tapahtuma jatkuu.” Näin osallistujille on selvää millaisessa tapahtumassa he ovat mukana.</p> <h3 id="ohjelma" tabindex="-1">Ohjelma</h3> <p>Viimeistään tässä vaiheessa kannattaa näyttää osallistujilla millainen ohjelma tapahtumassa on. He osaavat asennoitua tapahtuman kulkuun ja ennakoida, mitä tulee tapahtumaan.</p> <p>Jos tapahtuma on kestää enemmän kuin tunnin, niin pidä tauko!</p> <h2 id="tapahtuman-loppu" tabindex="-1">Tapahtuman loppu</h2> <p>Läsnätapahtumissa osallistujien tutustumienn ja verkostoituminen toisiinsa tapahtuu ohjattujen keskustelujen ja kahvikeskustelujen kautta. Jos tapahtumassa ei ole tällaisia ohjattuja keskusteluja pienryhmissä, niin verkostoitumiseen voi kannustaa pyytämällä osallistujia jakamaan omat sosiaaliset mediansa.</p> <p>Muista varata lopetuksellekin aikaa tapahtuman loppuun ja lopeta tapahtuma selkeästi.</p> <h3 id="palaute" tabindex="-1">Palaute</h3> <p>Jos kokeilit tapahtumassa jotain uutta tai haluat saada muuten vain palautetta, niin sitä kannattaa pyytää. Varaa tähänkin aikaa ennen tapahtuman loppua, että osallistujat vastaavat siihen välittömästi.</p> <!--EndFragment--> </content>
</entry>
<entry xml:lang="fi">
<title>Onnistuneen etätapahtuman vinkkilista</title>
<link href="https://samimaatta.fi/kirjoitukset/onnistuneen-etatapahtuman-vinkkilista/"/>
<updated>2022-07-08T19:42:03Z</updated>
<id>https://samimaatta.fi/kirjoitukset/onnistuneen-etatapahtuman-vinkkilista/</id>
<content type="html"><!--StartFragment--> <p>Miten onnistua etätapahtuman toteuttamisessa?</p> <p>Tärkeintä asiaa ennen varsinaista vinkkilistaa ei voi korostaa tarpeeksi: <strong>Tapahtumalla täytyy olla fasilitoija tai juontaja</strong>. Tiedät kyllä, mitä on käynyt, kun ennestään toisilleen tuntemattomat osallistujat yrittävät itseohjautua lyhyessä ajassa tai, kun vieras esittäjä on jäänyt yksin esityksensä kanssa. Se on vain hämmentävää.</p> <h2 id="vinkkilista" tabindex="-1">Vinkkilista</h2> <ol> <li> <p>Vastaa kysymyksiin tapahtumaa varten.</p> <ol> <li>Mitä (tapahtuu)?</li> <li>Missä (tapahtuu)?</li> <li>Milloin (tapahtuu)?</li> <li>Mitä erityisjärjestelyitä?</li> </ol> </li> <li> <p>Viesti ennen tapahtumaa.</p> <ol> <li>Mieti, mitä kautta jaat tietoa tapahtumasta.</li> <li>Tee ilmoittautumislinkki.</li> <li>Lähetä linkki tapahtumaan ilmoittautumisen jälkeen.</li> </ol> </li> <li> <p>Tapahtuman kulku.</p> <ol> <li>Laitteiden testaus 10 minuuttia ennen tapahtumaa.</li> <li>Esittäytyminen.</li> <li>Yhteiset pelisäännöt (esimerkiksi <a href="https://alli.fi/palvelut/tyokaluja-nuorisoalalle/turvallisemman-tilan-periaatteet-ja-vihapuheesta-vapaan-keskustelun-saannot/">Turvallisemman tilan periaatteet)</a>.</li> <li>Sovitaan, miten pyydetään puheenvuoroja.</li> <li>Sovitaan, käytetäänkö chattia ja kuka seuraa sitä.</li> <li>Sovitaan, pidetäänkö videokamera päällä, kun puhutaan ja pidetäänkö mikki pois päältä, kun ei puhuta.</li> <li>Käydään läpi ohjelma.</li> </ol> </li> <li> <p>Tapahtuman loppu.</p> <ol> <li>Kiitä osallistujia.</li> <li>Verkostoituminen sosiaalisten medioiden jakamiselle.</li> <li>Palautteen kerääminen.</li> </ol> </li> </ol> <h2 id="selita-lisaa" tabindex="-1">Selitä lisää!</h2> <p>Jos tämä postaus oli sinusta liian lyhyt tai haluat saada lisää selityksiä eri kohdille, niin lue postaukseni aiheesta...</p> <!--EndFragment--> </content>
</entry>
<entry xml:lang="fi">
<title>Erätauko-menetelmä</title>
<link href="https://samimaatta.fi/kirjoitukset/eratauko-menetelma/"/>
<updated>2022-07-06T19:40:52Z</updated>
<id>https://samimaatta.fi/kirjoitukset/eratauko-menetelma/</id>
<content type="html"><!--StartFragment--> <p>Valtiokonttorin Kehittäjävalmennuksen kautta olen päässyt tutustumaan Erätauko-mentelmään, jonka tavoitteena on luoda parempaa ja rakentavampaa yhteiskunnallista keskustelua.</p> <h2 id="mika-kehittajavalmennus" tabindex="-1">Mikä kehittäjävalmennus?</h2> <p><a href="https://www.valtiokonttori.fi/tapahtuma/kehittajavalmennus-kaynnistyy-jalleen/">Kehittäjävalmennus</a> on Valtiokonttorin järjestämä koulutuskokonaisuus valtion työntekijöille, johon pystyi hakemaan tammikuussa 2021.</p> <p>Kehittäjävalmennukseen kuuluu monia erilaisia koulutuksia, jotka käsittelevät mm. ratkaisukeskeisyyttä, virtuaalifasilitointia, ilmiölähtöisyyttä ja tässä käsiteltävää Erätauko-dialogia.</p> <p>Syksyn 2021 mittaan tulevat aiheet käsittelevät esimerkiksi myös tekoälyä valtionhallinnossa ja systeemisyysajattelua.</p> <p>Yhtenä, erityisesti minua kiinnostavana, aiheena oli Erätauko-menetelmä ja dialogi.</p> <h2 id="dialogi-on-kaikkien-kokemusten-kohtauspaikka" tabindex="-1">Dialogi on kaikkien kokemusten kohtauspaikka</h2> <p>Erätauko-dialogi sai alkun <a href="https://www.sitra.fi/eratauko/">Sitran Erätauko-hankkeesta</a>, jonka teemana oli rakentavan keskustelun lisääminen ja osallisuuden lisääminen yhteiskunnassa. Nykyisin Erätauko-menetelmää jatkokehittää ja kouluttaa <a href="https://www.eratauko.fi/">Erätauko-säätiö</a>. Menetelmässä keskustelu nojaa kokemuspuheen varaan.</p> <h3 id="mita-kokemuspuhe-on" tabindex="-1">Mitä kokemuspuhe on?</h3> <p>Kokemuspuhe tarkoittaa, että jokainen puhuu omista kokemuksistaan esittämättä yleisiä mielipiteitä siitä, miten asioiden pitäisi olla tai miten itse näkee niiden olevan laajemmassa perspektiivistä. Tarkoitus on siis kertoa, miten käsiteltävä asia ilmenee juuri omassa elämässä.</p> <h3 id="mita-eratauko-dialogi-on" tabindex="-1">Mitä Erätauko-dialogi on?</h3> <p>Tarkoituksena on syventää ymmärrystä ja saada tietoa muiden ihmisten kokemuksista käsiteltävästä aiheesta.</p> <p>Esimerkiksi viimeisin kokemani dialogi koski suomalaista keskustelukulttuuria. Dialogissa olevat ihmiset jakoivat kokemuksiaan erilaisista keskustelutilanteista ja myös reflektoivat, millaisissa tilanteissa keskustelu on helppoa tai vaikeaa.</p> <h3 id="mita-eratauko-dialogi-ei-ole" tabindex="-1">Mitä Erätauko-dialogi ei ole?</h3> <p>Tarkoituksena ei ole löytää ratkaisuja, tehdä päätöksiä tai päästä yhteisymmärrykseen. Siinä ei ole myöskään tarkoitus väitellä muiden osallistujien kanssa parhaasta mielipiteestä.</p> <p>Suomalaisesta keskustelukulttuurista puhuttaessa ei käytetty puheenvuoroja siihen, että millaista keskustelun pitäisi olla, vaan oman kokemuksen jakamiseen. Nämä saattoivat olla hyviä tai huonoja riippuen henkilöstä ja tilanteesta.</p> <h2 id="kaiken-keskiossa-rakentavan-keskustelun-pelisaannot" tabindex="-1">Kaiken keskiössä rakentavan keskustelun pelisäännöt</h2> <p>Dialogi tapahtuu yhdessä hyväksyttyjen pelisääntöjen varassa, jotka luovat rakentavan keskustelun ilmapiirin.</p> <p><strong>Rakentavan keskustelun pelisäännöt</strong></p> <ol> <li>Kuuntele toisia, älä keskeytä tai käynnistä sivukeskusteluja.</li> <li>Liity toisten puheeseen ja käytä arkikieltä.</li> <li>Kerro omasta kokemuksesta.</li> <li>Puhuttele muita suoraan ja kysy heidän näkemyksiään.</li> <li>Ole läsnä ja kunnioita toisia sekä luottamuksen ilmapiiriä.</li> <li>Etsi ja kokoa. Työstä rohkeasti esiin tulevia ristiriitoja ja etsi piiloon jääneitä asioita.</li> </ol> <p>Kohta 6 liittyy myös kokemuspuheeseen: Kunkin henkilön kokemus samasta tilanteesta voi olla täysin erilainen ja dialogin aikana tämä on arvokas asia. Lisäksi kokemus voi olla myös ristiriidassa sen kanssa, minkä <strong>tietää</strong> todeksi, mutta silti kokee toisella tavalla. Keltään ei voi viedä kokemusta pois.</p> <h2 id="bonus-pisteet-mita-teet-kun-haluat-tuhota-dialogin" tabindex="-1">Bonus-pisteet: Mitä teet, kun haluat tuhota dialogin?</h2> <p>Joskus uuden käsitteen ymmärtämiseksi on helpompi selvittää, millä tavoilla se ei ainakaan toimisi. Erätauko-säätiö on koonnut sivulleen <a href="https://www.eratauko.fi/11-kikkaa-tuhota-dialogi/">11 kikkaa tuhota dialogi</a>.</p> <p>P.S. Oma lempparini on ehdottomasti “Keskeytä”, koska huomaan tekeväni sitä ihan vapaa-ajallakin. Olen ottanut tavoitteeksi keskittyä enemmän kuuntelemiseen – vähemmän selittelyyn. Mikä kikka osuu sinulla omaan nilkkaan?</p> <!--EndFragment--> </content>
</entry>
<entry xml:lang="fi">
<title>Last day of Solidabis Code Challenge 2022 – Kesken jäänyt</title>
<link href="https://samimaatta.fi/kirjoitukset/last-day-of-solidabis-code-challenge-2022-kesken-jaanyt/"/>
<updated>2022-07-04T19:39:58Z</updated>
<id>https://samimaatta.fi/kirjoitukset/last-day-of-solidabis-code-challenge-2022-kesken-jaanyt/</id>
<content type="html"><!--StartFragment--> <p>Olen nettisovellusaloittelija, joka tekee Solidabiksen koodihaastetta 2022. Päivitän, kuinka minulla menee ja jaan tuskani julkisesti, kun yritän rakentaa äänestyssovellusta ravintolan päättämiseksi!</p> <h2 id="yllattava-kaanne" tabindex="-1">Yllättävä käänne</h2> <p>Tein sen!</p> <p>Hankin koiranpennun ja jätin koodihaasteen sikseen!</p> <p>Siinäs siis kuulitte. Tällaista tämä on kun elämän parrasvaloihin astuu jotain muuta kuin oma kunnianhimo oppia jotain uutta webdevaamisesta.</p> <h2 id="mita-opin" tabindex="-1">Mitä opin?</h2> <p>Mitäpä siis opin ja mihin asti pääsin?</p> <p>Viimeksi taisin turhautua, koska en saanut paikkakunta-tietoa lomakkeesta APIin asti. Ilokseni totean, että onnistuin siinä!</p> <p>Sain aikaan siis oikein nätin listan paikkakunnan ravintolasta, kun sen syötti lomakkeeseen.</p> <p>Seuraavaksi opettelin pyyhkimään edelliset tulokset pois, kun etsin toisen paikkakunnan ravintoloita. Onnistuin siis siinäkin!</p> <p>Sen jälkeen tekeminen oikeastaan loppuikin. En lopulta päässyt toteuttamaan varsinaista äänestämistä tai sivuston varsinaista ulkoasua.</p> <p>Olen kuitenkin tyytyväinen. Taas tuli tehtyä jotain uutta ja ehkä ensi vuonna taas jatketaan.</p> <p>Seuraa, jos haluat nähdä, mitä tapahtuu seuraavaksi! Se ei todennäköisesti liity nettisivujen kehittämiseen, mutta ainakin saavutettavuuteen.</p> <!--EndFragment--> </content>
</entry>
<entry xml:lang="fi">
<title>Day 4 of Solidabis Code Challenge 2022 – Täydellinen turhautuminen</title>
<link href="https://samimaatta.fi/kirjoitukset/day-4-of-solidabis-code-challenge-2022-taydellinen-turhautuminen/"/>
<updated>2022-07-03T19:38:54Z</updated>
<id>https://samimaatta.fi/kirjoitukset/day-4-of-solidabis-code-challenge-2022-taydellinen-turhautuminen/</id>
<content type="html"><!--StartFragment--> <p>Olen nettisovellusaloittelija, joka tekee Solidabiksen koodihaastetta 2022. Päivitän, kuinka minulla menee ja jaan tuskani julkisesti, kun yritän rakentaa äänestyssovellusta ravintolan päättämiseksi!</p> <p>Tällä kertaa olen vain täydellisen turhautunut.</p> <h2 id="html-kielen-sisakkaisyys" tabindex="-1">HTML-kielen sisäkkäisyys</h2> <p>Siis kuinka vaikeaa voi olla pienelle ihmisille ymmärtää HTML-elementtien sisäkkäisyyttä?</p> <p>Ei kovinkaan vaikeaa. Otetaan yksinkertaistettu esimerkki (eli jätän tunnisteet ja muut attribuutit pois):</p> <pre><code>&lt;form&gt; &lt;input&gt;Anna paikkakunnan nimi&lt;/input&gt; &lt;button&gt;Hae paikkakunnan ravintolat&lt;/button&gt; &lt;/form&gt; </code></pre> <p>Lomake eli <code>&lt;form&gt;</code>-elementti on nyt elementtien <code>&lt;input&gt;</code> ja <code>&lt;button&gt;</code> vanhempi (”parent”). Toisinpäin: syöttökenttä ja painike eli <code>&lt;input&gt;</code> ja <code>&lt;button&gt;</code> ovat lomakkeen lapsia (”children”).</p> <p>Ihmiselle (minulle) on vaikeaa ymmärtää, että miten voin käyttää JavaScriptiä <code>&lt;input&gt;</code>-kentän tekstisisällön saamiseen! Se ei siis onnistunut mitenkään.</p> <p>Lomakkeenhan ainoa tehtävä on välittää tätä tietoa minulle, joten se vielä lisää turhautumista!</p> <h2 id="vastausten-viidakko" tabindex="-1">Vastausten viidakko</h2> <p>Vaikka katsoin youtube-videon youtube-videon jälkeen ja samosin läpi Google-tulosten viidakon, niin en vain alkanut ymmärtämään, miten saan napattua tuon tiedon lomakkeesta!</p> <p>Vastauksia oli monenlaisia, mutta yksikään niistä ei vaikuttanut olevan ratkaisu juuri minun ongelmaani.</p> <p>Löysin vastauksen, miten saan…</p> <ol> <li>pelkästä input-kentästä tiedon Javascriptin kautta APIlle, mutta en, että mitä teen, kun se on lomakkeen sisällä!</li> <li>ilmoituksen siitä, että lomake oli onnistuneesti palautettu, mutta en, että miten saan sen sisältämät tiedot käyttööni!</li> <li>tehtyä hakutoiminnon, jos minulla on tiedossa jo kaikki ravintolat joka paikkakunnalta, mutta en, että miten saisin haettua vain tietyn paikkakunnan ravintolat!</li> </ol> <p>Minulla on siis kaikenlaisia osavastauksia ongelmaan ja tarvitsen jotenkin keinon yhdistää ne. Tällä hetkellä lyö tyhjää…</p> <p>Myötäelä kanssani aina seuraavaan ongelmakohtaan asti.</p> <!--EndFragment--> </content>
</entry>
<entry xml:lang="fi">
<title>Day 3 of Solidabis Code Challenge 2022 – Radio-painikkeet ja semantiikka</title>
<link href="https://samimaatta.fi/kirjoitukset/day-3-of-solidabis-code-challenge-2022-radio-painikkeet-ja-semantiikka/"/>
<updated>2022-07-02T19:37:41Z</updated>
<id>https://samimaatta.fi/kirjoitukset/day-3-of-solidabis-code-challenge-2022-radio-painikkeet-ja-semantiikka/</id>
<content type="html"><!--StartFragment--> <p>Olen nettisovellusaloittelija, joka tekee Solidabiksen koodihaastetta 2022. Päivitän, kuinka minulla menee ja jaan tuskani julkisesti, kun yritän rakentaa äänestyssovellusta ravintolan päättämiseksi!</p> <p>Tällä kertaa ihmettelen, että miten saan näytettyä sivulla listan painikkeita, joista saadaan valittua ravintola.</p> <h2 id="lomake-jumppaa" tabindex="-1">Lomake-jumppaa</h2> <p>Viimeksi siis onnistuin saamaan ravintola-listan jo näkyviin. Jee!</p> <p>Nyt haluaisin mahdollistaa ravintolan valinnan ja sitä kautta pääsen käsiksi (ehkä) äänestämiseen. Käytän tässä hyväksi lomaketta <code>&lt;form&gt;</code>, syöttöä <code>&lt;input&gt;</code> ja syötön nimilappua <code>&lt;label&gt;</code>. Tarkemmin sanottuna luon radio-painikkeita. Koodi näyttäisi tältä:</p> <pre><code>&lt;form&gt; &lt;input type=”radio name=”restaurant” id=”restaurant0” value=”paten_potsi”&gt; &lt;label for=”restaurant0”&gt;Paten pötsi&lt;/label&gt; &lt;/form&gt; </code></pre> <p>Tärkeää huomioida radio-painikkeen luonnissa:</p> <ol> <li>Attribuutti <code>type=”radio”</code>, jotta selain ymmärtää sen radio-painikkeeksi.</li> <li>Attribuutti <code>name=”[ryhmän nimi]”</code>. Tämä yksilöi radio-painikkeiden ryhmän, joihin kaikki samannimiset painikkeet kuuluvat. Näin selain tietää, että vain yksi näistä ryhmän painikkeista voidaan valita.</li> <li>Attribuutti <code>id=”[uniikki tunniste]”</code>, jonka avulla juuri tähän tiettyyn valintaan voi viitata. Tätä tarvitaan, kun painikkeelle tehdään nimilappu <code>&lt;label&gt;</code>, jossa käytetään <code>for</code>-attribuuttia. Nimilappu mahdollistaa myös valinnan teon klikkaamalla vain näkyvää tekstiä!</li> <li>Attribuutti <code>value=”[painikkeen ‘arvo’]”</code>. Tämä on käsitykseni mukaan se, mikä oikeasti viestitään selaimelle, kun valinta tehdään. Sen toiminta on minulle vähän hämärän peitossa.</li> </ol> <h2 id="juututaan-semanttiikkaan-jooko" tabindex="-1">Juututaan semanttiikkaan, jooko?</h2> <p>Oikea semanttisuus eli elementtien käyttö on tärkeää jo siksi, että monet apuvälineohjelmat, kuten ruudunlukijat käyttävät niitä pääasiassa kertoakseen käyttäjälle, minkälaisten asioiden kanssa he ovat tekemisissä. Oikea attribuuttien käyttö myös lisää informaatiota, jota viedään käyttäjälle niiden kautta. Jos lomakkeen loisi vain <code>&lt;div&gt;</code>-elementeillä, niin tällaiset ohjelmat eivät tietäisi, minkä kanssa ovat tekemisissä.</p> <p>En vielä ole varma, että auttaako tämä äänestämisessä ja sen pitäisi olla mahdollista sovelluksessa.</p> <p>Koska haluan myös, että äänen voi ottaa pois, niin siihenkin pitäisi keksiä jokin temppu. Radio-painikkeet eivät itseasiassa salli valinnan poistoa.</p> <p>Valinnan voi poistaa kylläkin valintaruuduista… Ongelma on, että niiden avulla voi valita monta vaihtoehtoa samaan aikaan eli äänestää montaa eri vaihtoehtoa. Olisiko tämä kuitenkaan epätoivottu ominaisuus?</p> <p>Kaikenlainen apu otetaan vastaan (kunhan et suoraan kerro, että miten minun pitäisi tehdä koko sovellus)!</p> <p>Seuraa, kun hämmennyn edelleenkin.</p> <!--EndFragment--> </content>
</entry>
<entry xml:lang="fi">
<title>Day 2 of Solidabis 2022 – Noutaminen eli fetch()</title>
<link href="https://samimaatta.fi/kirjoitukset/day-2-of-solidabis-2022-noutaminen-eli-fetch/"/>
<updated>2022-07-01T19:36:56Z</updated>
<id>https://samimaatta.fi/kirjoitukset/day-2-of-solidabis-2022-noutaminen-eli-fetch/</id>
<content type="html"><!--StartFragment--> <p>Olen nettisovellusaloittelija, joka tekee Solidabiksen koodihaastetta 2022. Päivitän, kuinka minulla menee ja jaan tuskani julkisesti, kun yritän rakentaa äänestyssovellusta ravintolan päättämiseksi!</p> <p>Tällä kertaa ihmettelen, että miten onnistuin tulostamaan sivuilleni listan Helsingin ravintoloista APIn avulla.</p> <h2 id="google-auttaa" tabindex="-1">Google auttaa</h2> <p>Minulla ei ollut hajuakaan siitä, että miten saisin APIn kautta tietoja ja sen toimimaan, joten käännyin Googlen puoleen.</p> <p>Sain selville, että javascriptin kanssa puhutaan “fetch”-APIsta, jolla voi hakea tietoja muista lähteistä. Käy siis järkeen, että tätäkin kutsutaan APIksi, koska se yhdistää ja luo yhteyden kahden ohjelman välillä: Minun javascriptini ja ravintolatietojen kanssa.</p> <p>Olen kyllä edelleen hukassa, että mikä API oikeastaan on. Onko se tarkasti sanottuna rajapinta, jossa tietoja päästävät ‘putket’ ovat? Onko se ohjelma? Saa kertoa.</p> <p>Halusin saada ravintoloiden nimet. Googletin ja löysin hyvän koodinpätkän Medium-postauksesta (<a href="https://jack72828383883.medium.com/how-to-use-javascript-fetch-to-display-api-results-in-html-7aa59936ed30">How to Use JavaScript Fetch to Display API Results in HTML</a>). Se käsitteli Rick and Mortya, joten aina vain parempi!</p> <h2 id="noutamisen-vaiheet" tabindex="-1">Noutamisen vaiheet</h2> <p>Ensin minun piti siis</p> <ol> <li>käyttää <code>fetch()</code>-APIa, jonka argumentiksi annan APIn nettiosoitteen, jolloin</li> <li><code>fetch()</code> tuo minulle nettiosoitteen sisällön vastauksena (response) ja</li> <li>muutan vastauksen <code>.then</code>-metodin ja funktion avulla json-tiedostoksi (JSON tarkoittaa “JavaScript Object Notation”). Nyt riittää tietää, että siinä voi säilyttää tietoa ja liikuttaa sitä paikasta toiseen.</li> </ol> <p>Käytin <code>.then</code>-metodia(, jota en myöskään täysin ymmärrä vielä). Nimenomaisesti se kai kertoo, mitä tehdään seuraavaksi, kun edellinen vaihe on tapahtunut eli, kun <code>fetch() </code>on toteutunut.</p> <h2 id="nakyviin-sivuille" tabindex="-1">Näkyviin sivuille</h2> <p>Olen luonut HTML-puolelle (javascript ja HTML ovat eri tiedostoissa) lohkon <code>&lt;div&gt;</code>, jonka <code>id</code>-tunniste on <code>&quot;restaurant-data&quot;</code>. <code>Id</code>:n avulla voin ohjata paikan, jossa haluan näyttää ravintoloiden tiedot.</p> <p>Sitten käyn läpi ravintoloiden listan, jonka olen saanut <code>fetch()</code>-APIn kautta käyttämällä <code>.forEach</code>-metodia.</p> <p>Käytännössä <code>forEach</code> on silmukka, joka käy läpi jokaisen ravintolan nimen, luo sille kappale-elementin <code>&lt;p&gt;</code> ja sijoittaa tähän elementtiin tekstin “Ravintola: <code>[ravintolan nimi]</code>”. <code>[Ravintolan nimi]</code> saadaan ravintoloiden APIsta.</p> <p>Täytyy myöntää, että tässä vaiheessa olen aika tyytyväinen omaan etenemiseeni! Aluksi minulla ei ollut hajuakaan, miten API toimii tai miten saisin sivuilleni näkyviin mitään tietoja, mutta nyt siellä on jo lista ravintoloita.</p> <h2 id="seuraavat-askeleet" tabindex="-1">Seuraavat askeleet</h2> <p>Seuraavaksi voisin keksiä, että miten käyttäjä voi valita itse kaupungin, eikä vain katsoa Helsingin tarjontaa. Oli myös siistiä hoksata, että tiedot päivittyvät joka päivä <a href="http://lounaat.info/">lounaat.info</a> -palvelusta (vähän itsestäänselvää, mutta ihmettelin tietojen muuttumista).</p> <p>Seuraa, jos haluat nähdä, mitä tapahtuu seuraavaksi! Miten tekisit vastaavan itse?</p> <!--EndFragment--> </content>
</entry>
<entry xml:lang="fi">
<title>Day 1.75 of Solidabis Code Challenge 2022 – En ymmärrä mitään</title>
<link href="https://samimaatta.fi/kirjoitukset/day-1-75-of-solidabis-code-challenge-2022-en-ymmarra-mitaan/"/>
<updated>2022-06-30T19:35:55Z</updated>
<id>https://samimaatta.fi/kirjoitukset/day-1-75-of-solidabis-code-challenge-2022-en-ymmarra-mitaan/</id>
<content type="html"><!--StartFragment--> <p>Olen nettisovellusaloittelija, joka tekee Solidabiksen koodihaastetta 2022. Päivitän, kuinka minulla menee ja jaan tuskani julkisesti, kun yritän rakentaa äänestyssovellusta ravintolan päättämiseksi!</p> <p>Tällä kertaa ihmettelen, että mikä on API ja miten Swagger liittyy siihen.</p> <h2 id="ap-inointia" tabindex="-1">APInointia</h2> <p>API (application programming interface) on käsittääkseni kyseessä, kun kaksi eri ohjelmaa pyrkivät keskustelemaan keskenään. Jos ohjelmalla on API, niin se luo ‘putken’, jota kautta tieto siirtyy ohjelmasta toiseen eli niiden välille muodostuu rajapinta.</p> <p>Koodihaasteen tapauksessa API muodostuu backend-ohjelman ja <a href="https://www.lounaat.info/">lounaat.info</a> -palvelun välille. API ikään kuin kertoo backend-ohjelmalle, miten tietoja noudetaan ja sitä kautta APIn dokumentaatio kertoo minulle miten sitä käytetään.</p> <p>Näin saan esimerkiksi kaikkien Helsingin ravintoloiden listan backendin kautta, koska se osaa kommunikoida <a href="https://www.lounaat.info/">lounaat.info</a> -palvelun kanssa ja järjestellä tiedon muotoon, jota minun on helppo käsitellä.</p> <h2 id="mika-ihmeen-swagger" tabindex="-1">Mikä ihmeen “Swagger”?</h2> <p>Swagger on työkalu, joka käyttää avoimen lähdekoodin periaatteita APIen dokumentaation esittelyyn ja käyttöönottoon. Swagger käyttää OpenAPI määrityksiä, jotka mahdollistavat ns. yhteisen kielen kaikille APIlle, joita palvelussa on. On siis helpompi oppia se kuin tuhansia muita.</p> <p>Se ei kuitenkaan auttanut minua selvittämään, miten Swaggerin openAPI dokumentaatiota luetaan. Swaggerissa oli enemmän ohjeita sille, miten teet sinne oman APIsi kuin, että miten muut voivat sitä käyttää. Nämä perustuvat HTTP-metodeihin.</p> <p>Ilmeisesti on neljä olennaista HTTP-metodia, kun APIa käytetään:</p> <ol> <li><strong>GET</strong> tarkoittaa, että tämän ‘putken’ kautta saa haettua tietoa APIn läpi. Esimerkiksi listan ravintoloista.</li> <li><strong>POST</strong> tarkoittaa, että voin viedä tietoa APIn kautta. Esimerkiksi äänet, jotka kukin ravintola saa.</li> <li><strong>PUT</strong> tarkoittaa, että voin luoda jonkin uuden objektin tai päivittää jotain olemassa olevaa (en oikein tajua vielä).</li> <li><strong>DELETE</strong> on aika itsestäänselvä. Voin poistaa jotain tietoa tätä kautta. Esimerkiksi, jos jokin ravintola on syytä poistaa kokonaan tietokannasta, niin voisin tehdä sen tällä.</li> </ol> <p>Kaikkia näitä ei kuitenkaan ole Swaggerin openAI -sivulla, joka koskee tätä kyseistä tehtävää. <strong>PUT</strong> ja <strong>DELETE</strong> puuttuvat kokonaan. Ehkä minun ei siis haluta poistavan tai lisäävän mitään olennaisia tietoja – pelkästään muokkaavan tai hakevan niitä.</p> <p>Ai, niin! Minun piti käyttää jotain “gradlea”, että sain edes openAI-sivun avattua. En tiedä vielä mikä se on.</p> <p>Käykö mikään tästä järkeen? Ei ainakaan kaikki minulle. Selitä minulle ja muille, jos tiedät paremmin!</p> <!--EndFragment--> </content>
</entry>
<entry xml:lang="fi">
<title>Day 1.5 of Solidabis Code Challenge 2022 – Runko ja MVP</title>
<link href="https://samimaatta.fi/kirjoitukset/day-1-5-of-solidabis-code-challenge-2022-runko-ja-mvp/"/>
<updated>2022-06-29T19:34:36Z</updated>
<id>https://samimaatta.fi/kirjoitukset/day-1-5-of-solidabis-code-challenge-2022-runko-ja-mvp/</id>
<content type="html"><!--StartFragment--> <p>Olen nettisovellusaloittelija, joka tekee Solidabiksen koodihaastetta 2022. Päivitän, kuinka minulla menee ja jaan tuskani julkisesti, kun yritän rakentaa äänestyssovellusta ravintolan päättämiseksi!</p> <p>Törmäsin heti moneen minulle tuntemattomaan asiaan: API, Docker, Gradle, Spring Boot, Java, HTTP-only -cookie.</p> <h2 id="tarkein-ensin" tabindex="-1">Tärkein ensin</h2> <p>Lähdin siis liikkeelle ensimmäisestä järkevästä asiasta: Nimestä. Tämä luiskahti minulle kuin saukko puskista (kuultu aikoinaan yläasteen opettajalta. En tykännyt. Olkaa hyvä).</p> <p>Sovellukseni nimi tulee olemaan…</p> <p><strong>Safka Skaba.</strong></p> <p>Se kuvaa täydellisesti sitä, mitä sovelluksen on tarkoitus tehdä ja minusta se on myös erityisen esteettinen! Joku kielenhuollon ammattilainen osaa varmasti kuvailla, mikä siitä tekeekään niin miellyttävän.</p> <h2 id="sovelluksen-ominaisuudet" tabindex="-1">Sovelluksen ominaisuudet</h2> <p>Seuraavaksi mietin, että millaisia ominaisuuksia haluaisin sovellukseen.</p> <ol> <li>Hakukenttä, josta ravintoloita voi hakea.</li> <li>Listaus ravintoloista, jotka sopivat hakuun.</li> <li>Äänestys-painike.</li> <li>Äänen lukitseminen, jotta paikka voidaan päättää.</li> </ol> <p>Haluan, että ravintoloiden ohessa näkyisi, että millaisia ruokavalioita ne palvelevat. Tällä tavoin käyttäjä voi nopeasti nähdä, että kannattaako tiettyä ravintolaa edes äänestää.</p> <p>Mietin, että tämän voisi toteuttaa myös suodattimella, jolloin tietyt ravintolat eivät näy ollenkaan vaihtoehtoina, jos niissä ei ole tarjolla esimerkiksi laktoositonta ruokaa.</p> <p>Mitä mieltä olet, miten minun kannattaisi tehdä?</p> <ol> <li>Tägit, joissa lukee “laktoositon”, “vegaaninen” jne. ravintolan alla.</li> <li>Suodatin.</li> <li>Molemmat</li> </ol> <p>Tein sitten nopean luonnoksen canvalla, miltä sovellus näyttäisi <a href="https://www.canva.com/design/DAE_MCb7l_I/ROt8DYkSh0xFUkUPCGCI_Q/edit?utm_content=DAE_MCb7l_I&amp;utm_campaign=designshare&amp;utm_medium=link2&amp;utm_source=sharebutton%5D%28https%3A%2F%2Fwww.canva.com%2Fdesign%2FDAE_MCb7l_I%2FROt8DYkSh0xFUkUPCGCI_Q%2Fedit%3Futm_content%3DDAE_MCb7l_I&amp;utm_campaign=designshare&amp;utm_medium=link2&amp;utm_source=sharebutton">Safka Skaba</a>.</p> <h2 id="mvp" tabindex="-1">MVP</h2> <p>Monet mainitsemistani asioista ovat vielä sellaisia, joita en osaisi tehdä. Yritän siis ensin saada tehtyä “minimum viable productin” (MVP). Vapaasti siis “yksinkertaisin toimiva tuote”. Tällä olisi vähintään haasteessa esitetyt vaatimukset:</p> <ul> <li>Lounaspaikkojen haku</li> <li>Äänen antaminen, muuttaminen ja poistaminen</li> <li>Päivän äänestystuloksen esittäminen reaaliajassa</li> </ul> <p>Katsotaas, mitä seuraavaksi saan aikaan…</p> <!--EndFragment--> </content>
</entry>
<entry xml:lang="fi">
<title>Day 1 of Solidabis Code Challenge 2022 – Motivaatio</title>
<link href="https://samimaatta.fi/kirjoitukset/day-1-of-solidabis-code-challenge-2022-motivaatio/"/>
<updated>2022-06-27T21:00:00Z</updated>
<id>https://samimaatta.fi/kirjoitukset/day-1-of-solidabis-code-challenge-2022-motivaatio/</id>
<content type="html"><p>Teimme viime vuonna kaverini kanssa Solidabiksen koodihaasteen 2021, jossa toteutimme <a href="https://autoilumittarisovellus.herokuapp.com/">Autoilumittarisovelluksen (<span lang="en">HerokuApp</span>)</a>.</p> <p>Se oli ensimmäinen kerta, kun kumpikaan meistä teki nettisovellusta. Opettelimme miten HTML, CSS, Javascript ja React toimivat. Myönnettäköön, että en ehtinyt saada kovin kummoista otetta Reactiin, vaan kaverini otti siitä pitkälti koppia. HTML ja CSS olivat työni puolesta tuttuja: e-kirjaformaatit (kuten DTbook ja EPUB) rakentuvat pitkälti niille.</p> <h2 id="talla-kertaa-yksin" tabindex="-1">Tällä kertaa yksin</h2> <p>Päätin nyt kokeilla Solidabiksen koodihaastetta uudelleen, kun vuoden 2022 versio tuli julki.</p> <p>Tehtävänä on tällä kertaa tehdä äänestyssovelluksen frontend, jolla esimerkiksi työpaikan lounaspaikasta voidaan päästä yksimielisyyteen. Sovelluksen backend on tehty valmiiksi</p> <h3 id="tehtavananto" tabindex="-1">Tehtävänanto</h3> <p>Onko työ/kaveriporukassasi eripuraa ja “nokkapokkaa” missä tänään syödään? Ei hätää!</p> <p>Tehtävänäsi on demokratisoida lounaspaikan valintaprosessi toteuttamalla äänestyssovelluksen frontend.</p> <p>Tehtävän toteutusta varten saat valmiin backendin, jonka mukana tulevaan API-dokumentaatioon pääset tutustumaan.</p> <p>Toteutuksessa käytettävät teknologiat ovat vapaasti päätettävissäsi.</p> <p>Sovelluksessa tulee olla seuraavat toiminnot:</p> <ul> <li>Lounaspaikkojen haku</li> <li>Äänen antaminen, muuttaminen ja poistaminen</li> <li>Päivän äänestystuloksen esittäminen reaaliajassa</li> </ul> <p>Katso vielä lisätiedot tehtävän arviointikriteereistä sekä tarkempi ohje siitä, mitä palautuksessa tulee huomioida.</p> <p>Onnea koodihaasteeseen ja mukavaa (kesä)koodailua!</p> <!--EndFragment--> <h2 id="termit-tutuiksi" tabindex="-1">Termit tutuiksi</h2> <p>Pari termiä, jotka voivat hämmentää aivan aloittelijaa (joksi kyllä lasken itsenikin, mutta nämä jo tiesin)!</p> <h3 id="frontend" tabindex="-1">Frontend</h3> <p>Mikä on frontend? Frontend on ikään kuin sovelluksen julkisivu.</p> <p>Käytännössä se on osa, joka näkyy ulospäin ja, jonka kanssa käyttäjä vuorovaikuttaa. Siihen laitetaan kaikki visuaalisen suunnittelun paukut ja samaan aikaan keskitytään nettisivun saavutettavuuteen.</p> <p>Tämä tarkoittaa esimerkiksi saumatonta toimintaa erilaisten apuvälineiden, kuten ruudunlukuohjelmien tai suurennustyökalujen, kanssa. Tämän osan minä suunnittelen haastetta varten.</p> <h3 id="backend" tabindex="-1">Backend</h3> <p>Mikä on backend? Backend on, mitä on konepellin alla.</p> <p>Se laittaa pyörät pyörimään ja monesti sovelluksissa nämä ovat taustalla pyöriviä laskelmia tai tietokantoja, joita käyttäjä voi tutkia frontendin kautta.</p> <p>Haasteen tapauksessa backendin kautta saa listauksen kaikista tietyn paikkakunnan ravintoloista ja se mahdollistaa niistä äänestämisen.</p> <h2 id="building-in-public" tabindex="-1">Building in Public</h2> <p>Tarkoitukseni on ns. ‘build in public’ eli haluaisin mahdollisimman paljon ja laajasti näyttää, mitä olen tekemässä, miten ja miksi. Mutta miksi ihmeessä?</p> <ol> <li>Joudun opettelemaan paljon uutta ja siitä kirjoittaminen on hyvä tapa vetää yhteen oppimaani.</li> <li>Haluaisin osallistaa ihmisiä jollain tapaa sovelluksen rakentamiseen. Ehkä voisin saada palautetta silloin tällöin.</li> <li>Jos jotakuta kiinnostaa tällainen nettisovellusdevaaminen, mutta he eivät ole tehneet asian eteen mitään, niin tämä voi olla hyvä ponnahduslauta siihenkin!</li> <li><a href="https://www.linkedin.com/company/solidabis/">Solidabis Oy</a> jo hoksautti minua haasteen alkamisesta Linkkarin puolella, joten olisi hiukan noloa, jos en edes kokeilisi.</li> </ol> <p>Aloitin haasteen jo jokin aikaa sitten. Kuvittelin saavani kirjoitettua jo siitä, mitä en tiedä ja, miten olen ihan hukassa, mutta ilmeisesti lörpöttelyä saa aikaan jo pelkästään taustasta ja motivaatiosta.</p> </content>
</entry>
<entry xml:lang="fi">
<title>Tabu: Työpaikan vaihtaminen</title>
<link href="https://samimaatta.fi/kirjoitukset/tabu-tyopaikan-vaihtaminen/"/>
<updated>2021-08-21T19:30:29Z</updated>
<id>https://samimaatta.fi/kirjoitukset/tabu-tyopaikan-vaihtaminen/</id>
<content type="html"><!--StartFragment--> <p>Työpaikan vaihtaminen vaikuttaa olevan tietynlainen tabu. Tämän mainitsiminen tehdään hiljaa perheelle, kavereille ja vain lähimmille työkavereille. Erityisesti töissä tämän mainitsiminen tuntuu synniltä.</p> <p>Se tehdään varovasti: “Hei! Ennen, ku meet niin mulla ois jotain, mistä puhuu. Ootko huomannu niiden sivuilla, että siellä ois paikka auki? Joo, sehän on tosi mielenkiintosen olonen. Sais keskittyy just siihen omaan ydinosaamiseen.”</p> <p><em>Hiljaisuus.</em></p> <p>“Mä oon miettiny, et mä hakisin sitä.”</p> <p><em>Hiljaisuus.</em></p> <p>“Joo siis kyllähän mä oon nyt tykänny olla täällä, mut kyllä toi paikka vois tarjota mulle jotain muita alueita, joissa kehittyä.”</p> <p>Tilanne on salaisuus. Jälkikäteen tunnet syyllisyyttä siitä, että edes kerroit.</p> <p>Työkaverisi saattaa miettiä, että uskaltaako sinulle enää uskoutua epämiellyttävistä työasioista, koska ne voivat vahvistaa haluasi lähteä.</p> <p>Hän saattaa miettiä, että mitä kaikkea sinulle kannattaa opettaa, kun viet juuri opetetut taidot mennessäsi.</p> <p>Ehkäpä painavin kysymys, joka kolkuttaa hänen takaraivossaan on</p> <p><strong>“Voiko sinun luottaa sitoutuvan enää uusiin työtehtäviin, kun olet jo henkisesti ulkona?”</strong></p> <p>Mistä tämä johtuu? Sille on varmasti useita syitä, mutta alla muutama.</p> <ol> <li>Työpaikan vaihtaminen nähdään lausuntona nykyistä työpaikkaa vastaan. “Eikö työ riitäkään sinulle?” tai “Luuletko olevasi parempi kuin me?”</li> <li>Tuttu lausahdus on “Perehdyttäminen on kallista”. Yritys tai organisaatio panostaa paljon uuteen työntekijään ja on erilaisia arvioita siitä, milloin uudesta työntekijästä tulee tuottava työntekijä.</li> <li>Työpaikalla on valmiiksi suhtauduttu työntekijään siten, että he eivät lähde. Joissain paikoissa tehdään monen kymmenen vuoden uria. Tässä ei ole mitään väärää, mutta se voi muuttaa työpaikan kulttuuria siihen suuntaan, että lähtevä työntekijä nähdään menetyksenä.</li> </ol> <h2 id="kulttuurin-muutos" tabindex="-1">Kulttuurin muutos</h2> <p>Mainitut kohdat voidaan nähdä toisinkin.</p> <ol> <li> <p>Valtion organisaatiossa voidaan käyttää tulospalkkiomallia, jossa päätetään tulosmittarit, joiden saavuttamisesta organisaatio saa tulospalkkion, kun tavoite toteutuu. Yksi näistä voi olla henkilökierto. Tämä tarkoittaa sitä, että vuoden aikana keskimäärin <em>x</em> henkilöä käy muissa tehtävissä toisessa organisaatiossa. Tämä on omiaan luomaan kulttuuria, jossa</p> <ol> <li>työpaikan ja tehtävien vaihtamiseen suhtaudutaan normaalina ja toivottavanakin asiana.</li> <li>työpaikan vaihtaminen nähdään oppimistilanteena.</li> <li>perehdyttämisen pitää olla tehokasta, jotta mahdollinen uusi korvaaja saadaan nopeasti mukaan työn arkeen.</li> </ol> </li> <li> <p>Onko perehdytys kallista siksi, että opittavaa on oikeasti paljon ja osaamisen täytyy olla syvää? Vai onko perehdyttäminen tehotonta ja sitä kautta kallista? Minkälainen olisikaan organisaation perehdytys, jonka visiona olisi olla “Paras perehdyttäjä”?</p> </li> <li> <p>Kulttuuri voi olla päinvastainen: Organisaatioon kuuluukin tulla joksikin aikaa ja sitten vaihtaa maisemaa. Työpaikan vaihtaminen nähdään luonnollisena vaiheena työntekijän elämässä ja organisaation elinkaaressa.</p> </li> </ol> <h2 id="miten-organisaatio-voi-hyotya-lahtevasta-tyontekijasta" tabindex="-1">Miten organisaatio voi hyötyä lähtevästä työntekijästä?</h2> <h3 id="henkilokierto" tabindex="-1">Henkilökierto</h3> <p>Valtion työntekijän on mahdollista hakea valtion julkisesti avoinna oleviin paikkoihin – kuten kuka tahansa muukin. Jos kyseessä on määräaikainen pesti, niin puhutaan henkilökierrosta. Henkilö menee määräajaksi uusiin tehtäviin ja voi palata vanhaan virkaansa määräajan päätyttyä.</p> <p>Tärkeää tässä tapauksessa on tehdä selkoa siitä, mitä lähtevän työntekijän organisaatio voi <strong>oppia</strong> työntekijän uusista kokemuksista. Mitä opittavaa uusista työtehtävistä on ja miten nykyinen organisaatio voi hyötyä tästä?</p> <h3 id="tyonantajakuva" tabindex="-1">Työnantajakuva</h3> <p>Mikäli työntekijä on lähtemässä pysyvästi, niin eikö organisaation ole tärkeää, että nykyinen työ ja työympäristö on niin miellyttävä, että lähtevä työntekijä haluaa jatkossakin olla yhteydessä organisaatioon? Sen sijaan, että toivotetaan “Heissulivei!”, niin sanotaankin, että odotetaan innolla kuulumisia ja yhteistyökuvioita seuraavasta paikasta käsin.</p> <h2 id="tabun-rikkominen" tabindex="-1">Tabun rikkominen</h2> <p>Ihmisillä tulisi olla vapaus muovata juuri itsensä näköinen ura. Tämä voi tarkoittaa oman paikkansa etsimistä hyppimällä paikasta toiseen tai löytämällä se turvasatama, jossa on hyvä olla ja kehittää omia taitojaan. Kenenkään ei pitäisi joutua häpeämään valintaansa.</p> <!--EndFragment--> </content>
</entry>
<entry xml:lang="en">
<title>Mathematics as a Language</title>
<link href="https://samimaatta.fi/en/mathematics-as-a-language/"/>
<updated>2021-07-12T15:19:56Z</updated>
<id>https://samimaatta.fi/en/mathematics-as-a-language/</id>
<content type="html"><p>“Mathematics is a universal language” is a statement that many have probably heard in their life. Why isn’t it taught like one?</p> <h2 id="similarities-in-teaching-math-and-a-language" tabindex="-1">Similarities in Teaching Math and a Language</h2> <p>Let’s look at some building blocks of a language lesson. This is by no means an exhaustive list, but something to get us used to the idea of drawing lines between math and a language.</p> <ol> <li><strong>Vocabulary</strong>. In a language textbook you have pages lined with vocabulary and similarly you could say that you have vocabulary in maths. It’s the definition of the new concept, or a new formula.</li> <li><strong>Example phrases.</strong> Next you might have pictures of talking heads that are saying phrases relevant to the chapter’s theme. In mathematics the equivalent could be the various examples where we use a new formula in different situations.</li> <li><strong>Practising the phrases.</strong> Then you move onto actually practising the phrases. This might be that you read a phrase out loud switching up a word here and there. In mathematics these could be the easier, mechanical where some of the numbers have been changed compared to the examples.</li> <li><strong>Discussion and improvisation.</strong> In language lessons you might then move on to more free form dicussion where you play with the language. You improvise and come up with situations where you could use the language and the phrases you just learned. Where is discussion and improvisation in mathematics? Sure we have our ‘problem solving’ and ‘word problem’ tasks, but I would hardly call them improvisation with maths.</li> </ol> <h2 id="what-to-learn-from-languages" tabindex="-1">What to Learn from Languages?</h2> <p>Learning a language becomes easier when you relate it to your life. That’s why I think it often starts with topics that answer questions like “How do I describe my family?” and “How do I talk about my day or my plans for tomorrow?”</p> <p>I feel that in math we focus too much on repeating the vocabulary (concepts, definitions, formulas) through examples and tasks, but we forget about coming up with situations where we use, what we have learned. This also prevents the students from discussing math meaningfully and within their own context.</p> <p>I hope this will spark up a conversation on why and how we teach maths. I think that discussion and improvisation in mathematics should be emphasized more.</p> <p>We should have <strong>discussion</strong> and <strong>improvisation</strong> in mathematics, so we could better understand what relevance math has in our lives and also to think how you can already use your known skills in a given situation relating to mathematics.</p> <h2 id="tasks-and-facilitation-to-support" tabindex="-1">Tasks and Facilitation to Support</h2> <p>How should we go about, so we can actually encourage improvisation and discussion in math lessons? This probably requires its own post, but let’s tackle it a bit here.</p> <h3 id="tasks" tabindex="-1">Tasks</h3> <ul> <li>Open ended tasks: Such tasks that don’t only have one solution. Better yet: They don’t only use the knowledge you have acquired in class.</li> <li>Invention tasks: Much like open ended tasks, but students are tasked with coming up with a specific thing. For example, they could expected to come up with a way to measure the sustainability of a plastic bag.</li> <li>Malcolm Swan’s (2016.) Collaborative Learning describes many great, discussion-based approaches to mathematics.</li> </ul> <h3 id="facilitation" tabindex="-1">Facilitation</h3> <ul> <li>Facilitate a dialogue: As a teacher don’t pass judgment on a student’s answer, but rather encourage other students to take part in the discussion. Phrase like “Sounds interesting. X, what do you think of Y’s idea?” gives more power to student discussion.</li> <li>Don’t ask questions which you answer yourself or are just looking for another student to answer correctly. Instead always give time to talk about in pairs, or small groups and then gather answers afterwards.</li> </ul> <h2 id="inspiration-for-the-post" tabindex="-1">Inspiration for the Post</h2> <p>This post was partly inspired by <a href="https://wac.colostate.edu/llad/v4n1/jamison.pdf">the article Learning the Language of Mathematics by Robert E. Jamison</a> and by my own experiences learning German and teaching Finnish part time in Germany.</p> </content>
</entry>
<entry xml:lang="en">
<title>Geometric Numbers</title>
<link href="https://samimaatta.fi/en/geometric-numbers/"/>
<updated>2021-05-15T00:00:00Z</updated>
<id>https://samimaatta.fi/en/geometric-numbers/</id>
<content type="html"><p> There exists a mathematical concept called an <strong>arithmetic number</strong>. You can check it out more in-depth from this <a rel="noreferrer noopener" href="https://en.wikipedia.org/wiki/Arithmetic_number" data-type="URL" data-id="https://en.wikipedia.org/wiki/Arithmetic_number" target="_blank">wikipedia article about arithmetic numbers</a>. </p> <p> In short, a number $a \in \mathbb{Z}$ is called an arithmetic number if the mean of its divisors is also an integer. </p> <h2>Example</h2> <p> For example, number $14$ is an arithmetic number. Let's prove this by checking if the conditions above apply. </p> <p> Divisors of the number $14$ are numbers $1, 2, 3, 7$ and $14$. The mean of the divisors is </p> <p>$$\frac{1 + 2 + 7 + 14}{4}=\frac{24}{4}=6.$$</p> <p> The mean $6$ is an integer, so number $14$ is an arithmetic number. </p> <h2>What are Geometric Numbers?</h2> <p> Spoilers! There is no such thing as a <strong>geometric number</strong> (at least according to my quick Googling). So, let's invent them! For this we can look back to arithmetic numbers. What are they made of? </p> <p>For a number to be arithmetic we look at its</p> <ol> <li>divisors,</li> <li>the divisors' arithmetic mean and</li> <li>if the mean is an integer.</li> </ol> <p> We can device an analogue for the geometric number. We can see that the defining aspect of an arithmetic number is the <strong>arithmetic</strong> mean. Maybe for a geometric number we could calculate a geometric mean? Does such a thing exist? A geometric mean does exist based on this <a rel="noreferrer noopener" href="https://en.wikipedia.org/wiki/Geometric_mean" data-type="URL" data-id="https://en.wikipedia.org/wiki/Geometric_mean" target="_blank">wikipedia article about the geometric mean</a>. So, now we have the building blocks for a definition. </p> <h2>Definition of a Geometric Number</h2> <p> A number $a \in \mathbb{Z}$ is a <strong>geometric number</strong> if the geometric mean $g_m$ of its divisors is an integer. </p> <h2>Examples of Using the Definition</h2> <p> Let's take a look numbers $5$ and $9$. The questions that we need to answer are </p> <ol> <li>What are the divisors of the numbers?</li> <li>Are the geometric means of the divisors integers?</li> </ol> <h3>Example 1</h3> <p>Let's answer the questions for the number $5$.</p> <p> $5$ is a prime, so the only divisors are $1$ and $5$. Let's calculate the geometric mean of the divisors. There are two divisors, so the degree of the root is $2$. </p> <p>The geometric mean is</p> <p>$$g_m=\sqrt{1 \cdot 5}=\sqrt{5}=2.236\ldots.$$</p> <p> Now we can see that the geometric mean is not an integer, so it follows that $5$ is not a geometric number. </p> <h3>Example 2</h3> <p> The divisors of $9$ are $1,3,9$, so the degree of the root is $3$. Let's calculate the geometric mean </p> <p>$$g_m=\sqrt[3]{1 \cdot 3 \cdot 9}=\sqrt[3]{27}=3.$$</p> <p> Now the mean is an integer, so $9$ is an actual geometric number! </p> <h2>Geometric Numbers in Teaching</h2> <p> Since geometric numbers don't acually exist they provide a good pedagogical tool for discovery in mathematics teaching. Here are some tasks to get started with geometric numbers </p> <ol> <li> Determine which of the numbers less than $25$ are geometric numbers. </li> <li>Which kind of numbers seem to be geometric numbers?</li> <li> Can you make any generalisations about which kind of numbers are geometric numbers? </li> </ol> </content>
</entry>
<entry xml:lang="en">
<title>Setting up Your Own Website (with Wordpress)</title>
<link href="https://samimaatta.fi/en/setting-up-your-own-website-with-wordpress/"/>
<updated>2021-05-02T00:00:00Z</updated>
<id>https://samimaatta.fi/en/setting-up-your-own-website-with-wordpress/</id>
<content type="html"> <p> <strong>9.8.2022 update:</strong> This is a post from my old site, which was built with Wordpress. It doesn't reflect the creation of this site with Eleventy and Netlify, but I decided to leave it as a record! </p> <!-- wp:paragraph --> <p> As I had gotten my own website up and was wondering "What to post?" I figured it would make sense to post my journey to actually realize the website. So here goes. </p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>Basic Building Blocks of a Website</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p> For me, it makes most sense to divide the creation (and maintenance) of a website into three parts: </p> <!-- /wp:paragraph --> <!-- wp:list {"ordered":true} --> <ol> <li>A domain - <strong>quenched.fi</strong></li> <li>A hosting service - <strong>domainhotelli.fi</strong></li> <li>A website editor - <strong>Wordpress</strong></li> </ol> <!-- /wp:list --> <!-- wp:paragraph --> <p> 'Building a house' is an apt analogy for the parts of a website. A <strong>domain</strong> is like your address to your house. <strong>Hosting </strong>is like renting a piece of a property for your house. The <strong>website editor</strong> is like architect or the construction company to build your house. </p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>Things I Spent Money on</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p> First things first: Things that are costing me money are the <strong>domain</strong> and the <strong>hosting</strong>. The domain costs me around 9 €/year and the hosting about 35 €/year for the first year. The hosting is about half off for the first year. Regular prices seemt to be around 80 €/year. I guess this is how they trap you, since migrating your stuff to another hosting service is a hassle (<strong>update</strong>: which I am finding out now...). I have to look into that some time in the future! </p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>The Domain</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p> This will be <strong>the name of your website</strong>, if you are willing to pay premium for hosting. Usually free hosting doesn't let you use your own domain if you have one. This is why you see website names like <span lang="fi">"nönnönöö.wordpress.org"</span> or "nannannanaa.medium.com". They didn't want to pay for hosting, or they simply didn't get a domain for themselves. (I actually think the main reason for getting a domain is that you can't come up with a good name. It's hard!) Those kinds of websites do make it easier to try out whatever kind of content you want to do, so the risks are minimal. </p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>The Hosting</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p> It seems like I effectively rented the domain for a year from <a href="https://www.domainhotelli.fi/" data-type="URL" data-id="https://www.domainhotelli.fi/" lang="fi">Domainhotelli</a>. It's a Finnish provider since I wanted the ".fi" ending. I looked through other hosting options, but settled back to <span lang="fi">Domainhotelli</span>, since it seemed to be quite cheap and solid for the price. </p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>The Website Editor</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p> Once you have your hosting set up, you have to decide in what way you want to manage your website. Mainly how it looks to the audience and how you interact with it yourself. </p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p> Sure you can just start writing HTML and then upload it to the hosting platform (I don't actually know how. Let's see in the future.), but you make it easier for yourself to simply choose a hosting service, which allows easy installation of a website editor. There are many choices (to my understanding) and I only chose <a href="https://wordpress.org/" data-type="URL" data-id="https://wordpress.org/">Wordpress</a>. The biggest reason being that I wanted to display mathematics on my website and noticed that the publication for Finnish math education <a href="https://dimensiolehti.fi/" data-type="URL" data-id="https://dimensiolehti.fi/">Dimensio</a> was using Wordpress. They are displaying maths, so it must work, right? I am actually still working on that, but it looks promising. </p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>A Lot to Learn</h2> <!-- /wp:heading --> <!-- wp:paragraph --> <p> There is still a lot to learn about useing Wordpress: from its UI to its many plugins - and also just plainly how to deliver information in an entertaining way. Luckily all of this is practice, so I get a nice head start to it! </p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p> I also want to focus on making my website as accessible as possible for any assistive technologies, so let me know if there are any problems with them. </p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p> Shoot me a message, if you need some help with setting up your own website. In the end, we are here to help others. </p> <!-- /wp:paragraph --> </content>
</entry>
</feed>