teisipäev, 26. november 2024

ChatGPT: Keelemudel kui igapäevaelu uus abiline

 

Viimasel ajal on üha enam kõneainet pakkunud tehisintellektil põhinevad keelemudelid, tuntuim neist vast ChatGPT (tootja OpenAI). Paljud meist on sellest kuulnud, kuid vähesed mõistavad tegelikult, mis see on ja kuidas seda oma igapäevaelus kasutada. Tihti kasutatakse ChatGPT-d valesti, nähes seda kui tavalist otsingumootorit või faktide allikat. Tegelikkuses on tegemist palju enama kui pelgalt veebist andmete otsimise tööriistaga.

Mis on ChatGPT ja kuidas see töötab?

ChatGPT on tehisintellektil (lihtsamalt öeldes – masinõppel) põhinev keelemudel, mis suudab mõista ja genereerida inimkeelset teksti. Ta on treenitud suurel hulgal tekstilistel andmetel, mis võimaldab tal luua loogilisi ja sidusaid vastuseid erinevatele küsimustele. Erinevalt otsingumootoritest, mis indekseerivad veebilehti ja pakuvad linke vastavalt otsingusõnadele, genereerib ChatGPT vastuseid oma olemasolevate teadmiste põhjal ilma reaalajas veebist andmeid otsimata.

Iga töö jaoks on oma tööriist

Nagu igal tööriistal, on ka ChatGPT-l oma spetsiifiline kasutusvaldkond. Me ei eelda haamrilt, et sellega saab kruvisid sisse keerata (kuigi sisse lüüa võib proovida). Samuti ei kasuta me akutrelli kallite mikromehaaniliste käekellade parandamiseks; selleks on vaja peenemaid tööriistu ja erialaseid teadmisi. Iga ülesanne nõuab õiget tööriista, et saavutada parim tulemus. Samamoodi ei ole ChatGPT loodud reaalajas faktide kontrollimiseks või spetsiifiliste andmete otsimiseks, vaid ta on suurepärane abiline teksti ja keelega seotud ülesannetes.

Miks ei tohiks ChatGPT-d kasutada otsingumootorina?

Kuna ChatGPT ei ole loodud faktide kontrollimiseks ega kõige värskemate uudiste edastamiseks, võib tema vastustes esineda ebatäpsusi. Ta ei ole ühendatud reaalajas andmebaasidega ning tema teadmised lõppevad teatud ajaperioodiga. Seetõttu ei pruugi ta olla kursis viimaste sündmuste või uuendustega. Kasutades teda otsingumootorina, riskime saada aegunud või ebatäpseid vastuseid.

Kuidas saab ChatGPT-d igapäevaelus tõhusalt kasutada?

  1. Tekstide koostamine ja redigeerimine

    • Kirjade ja e-kirjade kirjutamine: Kui pead koostama ametliku kirja või vastama keerulisele e-kirjale, saab ChatGPT aidata sõnastada mõtted selgelt ja professionaalselt.

    • CV ja motivatsioonikirjad: Tööotsingul olles on oluline esitleda end parimas valguses. Keelemudel aitab luua läbimõeldud ja mõjuvaid dokumente.

    • Loominguline kirjutamine: Olgu selleks luuletus, lühijutt või kõne – ChatGPT saab pakkuda inspiratsiooni ja aidata ideid struktureerida.

  2. Keeleõpe ja tõlkimine

    • Võõrkeelte harjutamine: Vestlemine keelemudeliga võimaldab praktiseerida erinevaid keeli ilma hirmuta eksida.

    • Tõlkimine: Kuigi ta ei asenda professionaalset tõlkijat, saab ta aidata mõista võõrkeelset teksti või tõlkida lihtsamaid lauseid.

    • Grammatika ja sõnavara parandamine: ChatGPT saab aidata parandada kirjavigu ja soovitada sobivamaid sõnu või väljendeid.

  3. Ideede genereerimine ja probleemide lahendamine

    • Projektide planeerimine: Olgu tegemist kodu renoveerimise, aiakujunduse või peo korraldamisega – keelemudel saab aidata koostada tegevuskava ja pakkuda ideid.

    • Retseptid ja toiduvalmistamine: Otsid ideid, mida õhtusöögiks valmistada? ChatGPT võib soovitada retsepte vastavalt sinu eelistustele, arvestades näiteks kogu pere toitumisharjumusi või allergiaid.

    • Hobid ja vaba aeg: Uute hobide avastamine või olemasolevate arendamine muutub lihtsamaks, kui saad ideid ja juhiseid keelemudelilt.

  4. Õppimine ja eneseareng

    • Teadmiste laiendamine: Kuigi faktide kontrollimisel tuleb olla ettevaatlik, saab ChatGPT selgitada keerulisi teemasid lihtsas keeles.

    • Testide ja eksamite ettevalmistus: Saad koostada harjutusküsimusi või paluda selgitada mõisteid, mis on jäänud ebaselgeks.

    • Aja planeerimine: Keelemudel aitab koostada efektiivseid õppimiskavasid ja ajaplaane.

  5. Tehniline abi ja juhised

    • Seadmete kasutusjuhendid: Kui vajad abi seadme seadistamisel või tarkvara kasutamisel, võib ChatGPT pakkuda üldisi juhiseid.

    • Probleemide tõrkeotsing: Ta saab aidata tuvastada levinud probleeme ja pakkuda lahendusi.

Mida tuleb meeles pidada ChatGPT kasutamisel?

  • Kriitiline mõtlemine: Kuna keelemudel ei pruugi alati pakkuda täpseid või ajakohaseid vastuseid, on oluline säilitada kriitiline meel. Kontrolli olulisi fakte usaldusväärsetest allikatest.

  • Privaatsus ja turvalisus: Ära jaga ChatGPT-ga isiklikku, tundlikku või konfidentsiaalset teavet. Kuigi vestlus on anonüümne, on parem olla ettevaatlik.

  • Eetilised kaalutlused: Kasuta keelemudelit vastutustundlikult. Väldi ebasobivate või kahjulike teemade arutamist. Oluline on olla teadlik ka tehisintellekti võimalike väärkasutuste osas.

  • Piirangute mõistmine: ChatGPT ei asenda professionaali nõu juriidilistes, meditsiinilistes ega finantsküsimustes. Tema antud nõuanded on üldised ja võivad vajada täiendavat kinnitust.

Praktilised näited: õige tööriist õigele tööle

Et paremini mõista, miks on oluline kasutada ChatGPT-d tema tugevustes, toome mõned näited. Kujutle, et sul on Šveitsi armeenuga – multifunktsionaalne tööriist, mis sisaldab nii nuga, kruvikeerajat kui ka kääre. See on kasulik paljudes olukordades, kuid kui pead ehitama maja või parandama autot, vajad spetsiaalseid tööriistu. Samamoodi ei pruugi ChatGPT olla parim vahend spetsiifiliste tehniliste küsimuste lahendamiseks, kuid ta on suurepärane üldiste keeleliste ülesannete jaoks.

Nagu me ei kasuta suuski jalgrattasõiduks ega vihmavarju kaitseks äikesetormi eest, peaksime ka ChatGPT-d kasutama tema tugevustele vastavates ülesannetes. Kasutades teda õigesti, saame temast maksimaalset kasu ja vältida pettumusi.

Kuidas alustada ChatGPT kasutamist?

  • Ligipääs: Paljud platvormid pakuvad võimalust suhelda ChatGPT-ga. Leia usaldusväärne teenusepakkuja ja loo konto, kui vajalik.

  • Selge suhtlus: Esita oma küsimused või ülesanded selgelt ja konkreetselt. Mida täpsem oled, seda asjakohasemad on vastused.

  • Katseta ja õpi: Alusta lihtsate ülesannetega ja õpi tundma, kuidas keelemudel reageerib. Aja jooksul saad paremini mõista, kuidas temalt parimat kasu saada.

Alternatiivid ja lisavõimalused

Kuigi ChatGPT on üks tuntumaid keelemudeleid, on olemas ka teisi sarnaseid tööriistu, mis võivad olla kasulikud. Näiteks Google Bard, Microsoft Bing Chat ja Hugging Face'i Transformers pakuvad samuti võimalusi keelelise abi saamiseks. Igal neist on oma eripärad ja eelised.
ChatGPT paistab silma oma võime poolest suhelda eesti keeles, mis teeb sellest eriti väärtusliku tööriista Eesti kasutajatele. Samas, näiteks võib Bing Chat olla integreeritud otsingumootoriga, mis võimaldab tal pakkuda ajakohasemat teavet. Hugging Face pakub avatud lähtekoodiga lahendusi, mis võimaldavad kasutajatel rohkem kontrollida mudeli treenimist ja kasutust.

Kokkuvõtteks

Tehisintellektil põhinevad keelemudelid, nagu ChatGPT, esindavad uut ajastut keele töötlemise valdkonnas. Need tööriistad pakuvad mitmekülgseid võimalusi, mis võivad oluliselt hõlbustada meie igapäevaelu. Olgu selleks siis kirjade koostamine, uute ideede genereerimine, keeleõpe või lihtsalt huvitav vestlus – võimalused on peaaegu piiramatud.

Siiski on oluline meeles pidada, et tegemist on tööriistadega, mille efektiivsus sõltub sellest, kuidas me neid kasutame. Nagu me ei kasuta Šveitsi armeenuga maja ehitamiseks ega vihmavarju kaitseks äikesetormi eest, peaksime ka keelemudeleid kasutama nende tugevustele vastavates ülesannetes.

Kutsun kõiki üles avastama ja katsetama erinevaid keelemudeleid ning leidma just endale sobivaima. Tehnoloogia areneb kiiresti ja meil on võimalus sellest osa saada, kui oleme avatud uutele kogemustele ja õpime neid targalt kasutama nii iseenda, oma ettevõtte või tööandja ning kogu Eesti heaks.

Artikkel on koostatud peamiselt tehisaru poolt.

esmaspäev, 30. oktoober 2023

Sourdough Rye Bread (Rukkileib)

 

Sourdough Rye Bread (Rukkileib in Estonian)

Day 1

Ingredients:

  • 50 g starter
  • 200 g lukewarm tap water
  • 100 g rye flour

Utensils:

  • Kitchen scale
  • Medium-sized bowl
  • Water jug
  • Wooden spoon
  • Kitchen towel

Procedure:

  1. It's easiest to do this using a scale. Place a bowl on the scale and reset it to zero (so the weight with the bowl is 0 g).
  2. Add the starter and pour in the water. Dissolve the starter in the water, stirring with a wooden spoon.
  3. Mix in the flour until you have a mixture with the consistency of sour cream or buttermilk. This mixture will be more liquid than a typical fed starter.
  4. Cover the bowl with a towel or lid, but ensure air can still get in. Do not seal it tightly. Leave the bowl in a warm place (>= 23-24ºC) for about 12 hours to rise and mature. By the next day, it should have risen significantly and be quite bubbly.

Day 2

Ingredients:

  • 300 g starter from the previous day
  • 400 g lukewarm tap water
  • 350-370 g whole grain rye flour
  • 10 g or 2 tsp fine salt
  • 10 g or 2 tsp caraway seeds
  • 10 g or 2 tsp ground coriander
  • 2 tbsp malt flour
  • 2 - 4 tbsp or a handful of flaxseeds
  • 3 - 5 tbsp or 2 handfuls of shelled sunflower seeds
  • 3 - 5 tbsp or 2 handfuls of pumpkin seeds
  • 0.5 - 1 tbsp butter

Note: Adjust the amounts of seeds and coriander to taste. You can omit them or add other ingredients, such as dried ground garlic or onion flakes. Optionally, you can lightly roast the seeds in a pan beforehand. Roasted pumpkin seeds are especially delicious! Malt flour will darken the bread. The butter is for greasing the bread pan.

Utensils:

  • Kitchen scale
  • Dough mixer or strong hands
  • Wooden spoon
  • Water jug
  • Dough scraper
  • Bread pan
  • Kitchen towel
  • Oven

Procedure:

  1. Firstly, set aside a little of the fed starter from the previous day for future bread baking. Each baker might have a different process for maintaining their starter, but the recipe's author typically feeds a new batch the previous day and stores it in a clean jar. But the latest you should do this is now. Don't forget!
  2. It's easiest to mix the ingredients on a kitchen scale. If using a dough mixer, place the mixer bowl on the scale and reset it to zero.
  3. Pour the bubbly starter from the previous day into the bowl. Add water and stir lightly with a wooden spoon. Then add seeds, caraway, coriander, and malt flour. Finally, add the salt (salt goes last because it can slow down the starter).
  4. If using a dough mixer, attach the bowl and set the mixer to a slow speed. Gradually add the flour (rye flour can be dusty), being cautious around the moving parts.
  5. After mixing, the result should be roughly 1.1 kg of bread dough, which will yield about the same amount of bread.
  6. Prepare the bread pan. The author uses aluminum bread pans like this one. They heat up quickly and conduct heat well. Grease the inside of the pan with butter. This doesn't need to be done meticulously, just ensure every part is slightly coated with butter. Then, pour or scoop the dough into the pan. The given amount should fit the mentioned pan almost perfectly. Smooth out the top of the dough with a scraper and press two to three "rising holes" along the length of the loaf using a wet finger.
  7. Cover the pan with a kitchen towel and let it rise in a warm place for 2-4 hours. Check occasionally, and when the dough has risen slightly out of the pan and the holes are mostly filled, it's time to bake.
  8. Preheat the oven to 250ºC. Before placing the bread in the oven, spray it with olive oil or brush with melted butter. Bake on the middle rack for 10 minutes. Then, reduce the temperature to 170ºC and bake for another 60-70 minutes. You can use a convection setting for a darker and crispier crust.
  9. Once done, turn off the oven, mist the bread with water, and place a damp towel on top of the bread still inside its pan. Let it cool in the oven for around 30 minutes. Then, remove the bread from the oven, take it out of the pan, and place it on a cooling rack. Cover with a damp towel.
  10. Slice and eat once the bread has cooled down slightly.

neljapäev, 22. aprill 2021

Juuretisega tehtud rukkileiva retsept ja valmistamine

Isetehtud rukkileib on parim

Leivategu käib mul 2 päeva. Alltoodud kogused käivad ühe vormitäie kohta, kaaluga umbes 1 kg või pisut üle.

Rukkileiva koostisosad

  • rukkijahujuuretis 
  • rukkijahu
  • puhas joogivesi (kraanivesi) 
  • peensool
  • seemned: linaseemned, kooritud päevalilleseemned, kooritud kõrvitsaseemned
  • köömned
  • jahvatatud koriander

Täpsed kogused on allpool kirjas. Lisatavate seemnete hulk ei ole kriitiline, neid lisada nii, kuidas endale meeldib. Olen ka lisanud näiteks kuivatutud küüslauku, samuti teinud lihaleiba lisades taigna vormi panemise ajal taigna sisse soolapeekoniviile.

Rukkileiva valmistamine

Päev 1 - juuretise toitmine

Võtta 50 grammi juuretist ja lahustada see 200 grammis käesoojas vees. Seejärel lisada sellele 100 grammi jahu ja segada kõik läbi ühtlaseks massiks. Sellest tekib umbes hapukoore konsistentsiga eeltainas/toidetud juuretis. Jätta see rätikuga või kaanega kaetuna (nii, et õhk ligi pääseb) ca 10-12 tunniks toasooja seisma. Mida soojem tuba, seda parem. Näiteks 25-kraadine temperatuur on väga hea.

Päev 2 - leiva küpsetamine

Eelmisel päeval toidetud juuretis peaks olema nüüdseks suuremaks kasvanud ning ajama mullikesi, isegi vahutama. Kui see on nii, siis on kõik hästi ning juuretis elab ja toimetab.

Taigna tegemine

Suurde kaussi või mikserikannu võtta 300 grammi seda eelmisel päeval toidetud juuretist (iga grammike ei loe, muretseda pole vaja). Lisada 380-400 grammi käesooja vett ja 10 grammi soola. Lisada 2 teelusikatäit köömneid, 2 kuhjata teelusikatäit jahvatatud koriandrit, 2 peotäit kõrvitsaseemneid, 2 peotäit kooritud päevalilleseemneid ja peotäis linaseemneid. Et saada tumedamat leiba, võib lisada 2 supilusikatäit linnasejahu.
Panna kõik taignamikserisse ja lasta mikseril kogu segu korralikult läbi segada. Samal ajal kaaluda välja 370 grammi rukkijahu ning lisada ka see mikserisse ja lasta mikseril kogu segu paar minutit keerutada.
Nüüd võtta leivavorm ja määrida see seest võiga. Ma ise kasutan alumiiniumist vormi, sest see soojeneb kiiresti ja ühtlaselt, aga sobivad ka klaasist või savist vormid. Odavaid kaetud plekist vorme ei soovita, sest see kate võib vormi küljest lahti kooruda ja leiva külge jääda. See ei tundu tervislik.
Seejärel tõsta tainas vormi sisse, siluda pealt märja käe või taignakaabitsaga siledaks ja vajutada märja sõrmega kolm kerkimisauku sisse (sirge sõrmega vajutada julgelt umbes poole taigna sügavuseni).
Nüüd jätta vormis olev tainas toatemperatuurile umbes 2-4 tunniks rätiku alla seisma ja kerkima. Kui kerkimisaugud on peaaegu täis kerkinud, on aeg leib ahju panna. Liiga kauaks kerkima jättes kerkib leib üle, läheb liiga õhku täis ja vajub ahjus kokku. Kõige viimane kerkimise etapp tulebki jätta ahju, et leivapäts saavutaks seal maksimaalse kõrguse ja õhulisuse.

Küpsetamine

Ahi kuumutada 250 kraadini. Enne ahju panemist pritsida leib pealt oliivõliga või pintseldada võiga üle. Seejärel panna leib ahju keskmisele kõrgusele ja küpsetada 10 minutit. Seejärel keerata ahju temperatuur 170 kraadi peale ja küpsetada veel 60-70 minutit. Võib küpsetada pöördõhuga, sest siis tuleb pealmine koorik pisut tumedam ja krõbedam.
Kui aeg on täis, lülitada ahi välja, pritsida leib pealt veega niiskeks ja panna soojas ahjus vormi sees olevale leivale niiske rätik peale. Lasta jahtuda ahjus umbes 30 minutit. Siis võtta leib ahjust, raputada see vormist välja ning asetada jahutusrestile, et õhk käiks alt läbi ja katta niiske rätikuga. Süüa ja lõigata siis, kui leib on jahtunud.

Kokkuvõtteks

Mina olen nüüdseks selle retsepti järgi teinud leiba pea kaks aastat enam-vähem iga nädal ja leib on iga kord õnnestunud. Juuretis Juhan on enda tehtud ja saab 2022 aprillis 2 aastat vanaks. Eelmisel kevadel läks paar kuud õppimiseks, harjutamiseks ja retsepti tuunimiseks ning nüüd toimib protsess täiega. Poeleiba pole ammu-ammu söönud ega tahtnudki:)


Alumiiniumist vormid ostsin Chez Mariuse poest.

Lisaväärtus - kuivikud

Kui leiba sai palju, nt 1 vormi asemel 2-3 tk, siis tuleks üsna varsti pärast jahtumist üleliigsed pätsid lõigata max õhukesteks viiludeks ja need viilud ära kuivatada (kui nt ahjul on kuivatusrežiim). Seejärel panna paberkotti ja neid kannatab mitu kuud järada.

kolmapäev, 17. juuni 2020

Estonian 100% rye sourdough bread a.k.a "black bread"

Here I describe how I make rye sourdough bread that is called "black bread" here in Estonia. It's kind of national food and pride here, too. And it tastes really good if made anywhere close correct. It can be made in a number of ways, there are tricks and caveats but it's worth trying out. For me it associates with my grandma. I remember her making the bread back in the beginning of eighties when I was a young boy. Oh that aroma...

The leaven (starter)

First rye leaven (starter) is needed. Making this would take 3 days but after 3 days you'd get kind of "young" starter, it's not mature yet. So it needs feeding. It should be fed in a way as wheat sourdough starter: take 1 part (e.g 30 g) leaven, add 3 parts (i.e 90 g) tap water, mix well and add 3 part s(i.e 90 g) rye flour. Mix well and leave to fridge overnight.
Do it for a month or so and the leaven will be very very good, very sour and very active.

Ingredients

So, now to the bread. The following recipe gives approximately 1 kg of bread.
Ingredients:
- 300 g leaven that's been fed previous day
- 300 g tap water at room temperature
- 350-400 g rye flour
- 10 g fine grained salt
- add seeds and stuff according to your taste:
  ~ 10 g dried ground garlic
  ~ 15-20 g flax
  ~ 20-30 g pumpkin seeds
  ~ 20-30 g sunflower seeds

Preparation of the dough

I'm doing the mixing with Kitchen Aid mixer but it can be done manually, too. Note - rye flour doesn't require kneading, just mix it well. It doesn't develop long proteins like wheat flour. However, it's very (very!) sticky dough. So wet your hands.

Add water to the bowl. Add leaven and mix well into the water. Add salt so it dissolves in the wet mix. Add seeds and mix. Add flour. I'm using bread mould so the dough is more liquid. However if you want to do bread that is called here "the floor bread", just a loaf, then add a bit more flour.
Put the dough into the mould or create a nice loaf. With a wet finger make 3 "proofing holes" into the loaf, smth like 2 cm deep.

Now the important part - let the dough rest at room temperature for min 1,5 hours, but the criteria here is visual - once you see the dough starts growing and you see the proofing holes getting filled it's time to start warming up your oven.

Baking

Rank the oven up to 230°C. Put the bread into the oven and bake it at 230 for 10-15 minutes. Now turn the temperature down to 170°C and bake it for ~50-60 minutes (1 hour).
The aroma starts spreading in the room in about 30 minutes after putting the bread into oven. Enjoy it and use it as a measure of control, too. I'm always baking with my nose more than with my eyes or hands.

After baking care

After taking the bread out of oven put it to a grill or somewhere where the air can get below the loaf. Cover the loaf with a moist tea towel and let it cool down for half an hour at least. This part is important. Rye bread develops stronger crust than wheat products in the oven. Moist towel would make the crust a bit softer.

Tasting

Now grab a good bread knife, cut a slice and add some real butter, maybe a pinch of salt ... Satisfaction guaranteed :)

kolmapäev, 29. august 2018

Blogid on vist out

Vaatan, et viimane sissekanne päevikusse on tehtud NELI AASTAT tagasi. See vist ütleb nii mõndagi ... :P

kolmapäev, 29. oktoober 2014

E-riigi e-kodaniku e-ootustest ehk Eeesti

Hiljuti üllatas Eesti maailma IT- ja kindlasti ka poliitilisi ringkondi lubadusega hakata juba üsna pea võimaldama e-residentsuse taotlemist.
See on uudne, julge lähenemine, mis õnnestumise korral seab Eesti IT-valdkonnas maailma absoluutsesse tippu nii tehnilise lahenduse kui ka poliitilise julguse ja otsustusvõime poolest. Oma väiksuse juures ei saa me tipus olla aladel, kus loeb mass. Küll aga saame olla tipus aladel, kus loeb mõistus ja nutikad lahendused.

Uhke e-riigi üle

Ma olen uhke meie e-riigi üle. Välismaal reisides on alati uhke tunne demoda kasvõi niivõrd igapäevast asja nagu Mobiil-ID-ga netipanka sisse logimine. Võõramaalased vaatavad seda kui ilmaimet. Sel ajal kui Amazon, Google jt suured tegijad juurutavad ja populariseerivad 2-tegurilist autentimist (2-factor authentication), on meil see juba ammu olemas ja üsna eeskujulikult teostatud. Kas ikka on?

Kuidas usaldada seda, mida ei kontrolli?

Jõudsin jutuga sinna, kuhu tahtsingi jõuda - Eeesti usaldatavus, Eeesti kontrollitavus, Eeesti läbipaistvus. Nendes aspektides ei ole me veel maailma tipus. Ma isegi ei tea, kus see maailma tipptase nendes asjades on. Võib-olla seda polegi. Eesti on IT-asjades pioneer, teerajaja ning ehk saame ka nendes asjades kogu ülejäänud maailmale eeskujuks olla.
Usaldus põhineb kontrollitavusel. Kontrollitavus põhineb läbipaistvusel. Läbipaistvus tuleneb tahtest teha asju läbipaistvalt, avatult. Meil on väga avatud riik, heas mõttes. Miks ei võiks ka meie riigi IT-asjad olla väga-väga avatud? Kõige avatumad maailmas?
Võtame kõige lihtsama näite. Riigihangetel luuakse avaliku sektori jaoks mitmesugust tarkvara. Miks ei ole seadustes nõuet, et kogu see tarkvara peab olema avatud lähtekoodiga, et asjast huvitatud e-kodanikud saaksid seda kontrollida? Sealt edasi on üks samm selleni, et teadlikud e-kodanikud saaksid teha parandusettepanekuid? Ja kui nüüd julge hundi rind on eriti rasvane ehk siis e-riigi juhtivad pead on tõeliselt avatud ja tulevikku vaatava mõtlemisega, siis nad panevad kogu koodi Githubi või Bitbucketisse ja siis saavad kogu maailma asjast huvitatud e-kodanikud (või meie e-residendid) kaasa lüüa.

Miks mitte?

Sealt edasi on üks samm selleni, et meie asjast huvitatud e-kodanikud arendavadki meie e-riiki. Riigi palgal on paarkümmend (või -sada) väga head arhitekti ja analüütikut, kes kirjeldavad lähteülesandeid ja kontrollivad nende täitmist. Ülejäänu käib aga e-talgute korras, vabatahtlikkuse alusel.
Riiklikud hackathonid? Miks mitte?!
E-riigi arendamine Garage48 jt sarnastel üritustel? Miks mitte?!
Eeesti.ee kui maailma suurim tarkvaraprojekt! Miks mitte?!
Riiklikud projektid kui startupid, mida finantseeritakse SmartCap jms asutuste poolt? Miks mitte?! Kui luuakse väga hea lahendus, saab seda skaleerida teistesse riikidesse ja sedasi ka tulu teenida. MIKS MITTE?

Kahvlis e-demokraatia

eesti.ee, ID-kaardi tarkvara, e-valimiste tarkvara, x-tee core jms Eeesti  alusttarkvara peaks olema avatud lähtekoodiga. See on võrreldav sellega, et pärismaailmas on meil reeglid ja seadused, mis peavad olema avalikud selleks, et need saaks toimida, et kõigil oleks võrdsed võimalused. Sama kehtib avalike hüvede tarvis kasutuses oleva tarkvara kohta - see peab olema avatud lähtekoodiga, kõigile kättesaadav, kõigi poolt kontrollitav, kusjuures igaüks peab saama teha parandusettepanekuid kui mitte otse, siis läbi usaldusisiku ehk enda poolt valitud e-saadiku (nn oma patsiga poiss e-riigi süsteemides).
git  ja github on tõelised e-demokraatia musternäidised. Avatud lähtekoodi kogukonnas on käibel ütlus "If you don't like it, fork it". See tähendab pikalt seletades: Kui see sulle ei meeldi, siis ära õienda, vaid löö käed külge ja paranda ära, sest kood on avatud ja sul on see võimalus.
See on näide suhtumisest, kus igaüks ise saab võtta vastutuse asjade paremaks muutmise eest. Forkimine on git-i maailmas tegevus, kus lähtekoodi peahoidlast (repository) luuakse eraldi, sõltumatu haru ehk fork. Haru tegija saab harusse ise teha parandusi ning seejärel saata peahoidla omanikule palve (pull request) tõmmata harusse tehtud muudatused peahoidlasse. Nüüd on peahoidla omaniku otsustada, kas muudatused on vajalikud, kas need on piisavalt hea kvaliteediga jne ning seejärel kas muudatused vastu võtta või tagasi lükata. See mudel töötaks suurepäraselt Eeesti arendamisel, kus kogu maailma arendajad saaks meie koodi kallal töötada, samal ajal kui meie kirjutame lähteülesandeid ning kontrollime harudesse tehtud muudatuste kvaliteeti.

Avatus elunormiks, raiskamine põlu alla

Riik ilma e-ta saab aidata sedaviisi, et laseb lahti pool kasutust statistikaametist või mõnest muust suuresti automatiseeritavast ametist. Seejärel võtab riik tööle terve karja "IT-kontrollereid" ehk siis isikuid, kes tegelevad e-Eesti lähtekoodi panustanute koodi kontrollimise ehk code review'ga, reeglistiku ning raamistiku loomise ja muude kontrollimise ning juhtimise funktsioonidega. Kui me saame sellises IT-juhtimises väga heaks, maailma parimaks, siis saame seda teenust ka teistele riikidele müüma hakata. Ja see on juba tõeline ajude, mitte gaasi või nafta, eksport.

P.S. Statistikaameti töö ei tohi jääda tegemata. Lihtsalt vähemalt pool tarbetult raisatud inimtööjõust tuleb koondada ning nende töö tuleb IT-vahenditega ära automatiseerida. Ja ärge tulge mulle rääkima, et seda ei saa teha!

Hashtag: #eeesti

kolmapäev, 1. oktoober 2014

Mida ma olen kõik see aeg teinud? Ühe startupi loo algus

Olen teinud tööd. Palju tööd. Tegin MageFlow-d. Kõva tööd aasta aega = toode

Viimased aasta-ja-natuke-peale on möödunud tempokalt. Selle aja jooksul olen valmis saanud oma elu esimese päris oma toote - MageFlow. Ma poleks seda saanud teha üksi - vaata MageFlow veebilehte ja näed, et meid oli alguses lausa kolm. Kolmekesi tegime valmis lahenduse, mida võiks iseloomustada sõnadega:
Save hours on dumb data work. Daily.
MageFlow takes away the pain of handling Magento data across multiple environments.
Eesti keeles siis - tegemist on Magento arendajatele ja kaupmeestele mõeldud lahendusega, mille abil saab lihtsa vaevaga liigutada andmeid ("sisu") ühest Magento instantsist teise. Kui arendustiim koosneb rohkem kui ühest inimesest või siis kui ka see üks inimene on piisavalt nutikas, et kasutada eraldi development-testing-staging-production keskkondi, siis kulub selline töövahend nagu MageFlow marjaks ära.
Praegu avalikkusele kättesaadav versioon MageFlow'st on nimetusega "RC-1". Neil päevil reliisime "RC-2" ja pärast seda 1.0. Ideid on väga palju. Arenduse käigus viskasime suure osa algsetest ideedest välja - tegime ringi - lükkasime edasi. Arendame üsna (väga) agiilselt. Osa arendusprotsessidest on automatiseeritud CI abil ning praegu ongi üks suuremaid töid kõikide automatiseerimata töölõikude automatiseerimine ja automaattestide loomine.

Lahendusest

MageFlow tegemine on olnud äärmiselt pingeline protsess kogu aasta jooksul. Esimese enamvähem töötava prototüübi saime valmis kuskil 2013. aasta lõpus - 2014. aasta alguses. Algul plaanisin ma selle lahenduse tegemiseks optimistlikult "ca 3 kuud" nagu üks õige progeja kunagi! Tegelikult aga läks kolmteist kuud, et toode oleks reaalseks kasutamiseks piisavalt küps. Samas - nagu ütleb vanasõnagi - kaua tehtud kaunikene.

Seestpoolt vaadates on tegu algusest peale skaleeruvana planeeritud (ja teostatud), asünkroonset protsessimist kasutava lahendusega, mille peamisteks siseorganiteks on Oracle'i JavaEE tehnoloogial põhinev komponent "Worker", Beanstalkd message queue, klasterdatud MySQL andmebaas, eriti salajasi andmeid turvaliselt hoidev "Keyserver", DNS server, Redis cache server ning nginx ja php55-fpm kasutav veebiserver. Lisaks muule siis ka OSS ehk Operations Support System, mille kaudu käib lahenduse juhtimine ja kontrol.
Kõik komponendid on lisaks loogilisele eraldatusele ka füüsiliselt eraldatud ja asuvad "kusagil pilves". Kasutame praegu Gandi hostingut, aga lahendus ei ole ühegi hostinguga laulatatud.

Vastavalt turvalisuse tasemele on masinad eraldi võrkudes ning internetist on kättesaadavad / internetti saavad ainult need, mida on vaja otse internetist kätte saada.

Töövahendid

Töövahenditena kasutab MageFlow Atlassiani stacki: JIRA, Confluence, Bamboo, BitBucket, Crucible. Lühikokkuvõte - Atlassiani töövahendid on fantastilised. Lisaks kasutame hoogsalt Intercomi, mis on väga lahe töövahend klientidega suhtlemiseks.
Arendajatel on kasutada JetBrains PHPStorm IDE, mis aitab produktiivsusele kõvasti kaasa.

Startupindus ja muu selline

2013. a tegelesime silm punnis ainult arendusega. Andsime ikka praktiliselt taluvuse piiril iseendale piitsa. See mõjus üsna kurnavalt (ka tervisele!), aga õhkkond tiimis oli väga hea ja töökas. 2014. a alguses, kui saime esimese prototüübi valmis, asusime demosid tegema asjast huvitatud osapooltele. Alguses sisaldas MageFlow ka Magento projektide infrastruktuuri loomise/kontrollimise ning versioneeritud koodi deploymise lahendust. Seetõttu oli esialgne huviliste ring laiem.
Saime jutule ka väga kõrgete eBay (Magento omanik) bossidega ning tekitasime neis huvi. Lisaks tegime demosid paljudele teistel ja huvi oli väga suur. 
Samal ajal keris startupindus tuure üles, sest meid kutsuti (muidu peab sinna taotlema!) StartupSauna kiirendisse Soomes.
Lugu tipnes sellega, et käisime StartupSauna vahepealt Gerdiga 2014. a maikuus Las Vegases Magento Imagine konverentsil. See oli ei enamat, ei vähemat kui fantastiline. Fantastiline, õpetlik, silmiavav, kasulik. Kohtusime seal ka Magento asutaja Roy Rubini ning eBay Senior VP Mark Lavelle'iga, kellega meil oli töine koosolek. Rääkisime MageFlow'st ja asjadest. Sellest üritusest saime suurt innustust, vahest liigagi suurt ...
Pärast seda tekkis meil palju ideid, sh maailmaparanduslikke:) Läksime oma toote featuuridega pisut liiale, pea läks esimesest (petlikust) edust segamini ja tegime seda, mida startupid ikka teevad - pivoti ehk kannapöörde.
Siiski jõudis mõistus õigel ajal koju tagasi ning tegime uue pivoti ja ajasime fookuse väga-väga teravaks. Fookuses on Magento Data Management ehk siis seesama "Save hours on dumb data work. Daily. MageFlow takes away the pain of handling Magento data across multiple environments". Viskasime kogu taaga välja ja lihvisime ainult tõeliselt vajalikke featuure. Palju ideid on praegu backlogis, millega hakkame tegelema vastavalt kasutajatelt laekunud tagasisidele.
Septembris kasvas ka meie tiim kolmest inimesest viieliikmeliseks ja praegu pingutame kõvasti vast-avatud tootele esimeste tõeliste klientide saamise nimel. 

Edu meile teie poolt!:)

Senine tulemus

Peamised tulemused 13-kuulise töö järel on:
  1. MageFlow App ehk https://app.mageflow.com/
  2. MageFlowConnector Magento extension (open source!) - https://bitbucket.org/mageflow/extension
  3. MageFlow tutvustav veebileht http://mageflow.com/
Olge lahked ja tehke omale täiesti tasuta demokonto ja proovige ise järele! Kommentaarid on teretulnud.