Lately I have found my self thinking how could a customer – when buying software development services – determine in “requirements” part that the end result should not be ugly. I belive there is no standard for describing this.
For me it has been common sense that I simply do not deliver (preferrably don’t even build in the first pace) ugly things. And there is no need to specify it in the requirements that “users should not get lost” or “users should not hurt themselves”.
From my experience I see it does not seem to be very common in the industry.
Extreme programming believes in
‘it is better to do a simple thing today and pay a little more tomorrow to change it’ than ‘to do a more complicated thing today that may never be used anyway’. But simple here by in no way means mean broken, malfunctioning or ugly.
I will update this post in the future but need to support local guys. Found it on Hacker News and just recently discovered that one of two guys behing it (the developer) is from my hometown.
Kõikide ainete õppematerjalid PEAKSID olema sellised nagu Bootstrapi dokumentatsioon. Pythoni õppematerjal täpselt nii ongi. Koolis ega ülikoolis ei peaks olema mitte ühtegi PowerPointi slideshow’d. Hetkel üsna suur osa ajast kulub sellele, et ma vormistan kõik slaidid palju kompaktsemateks ja paremini loetavateks Markdowni failideks. Kui vaja, siis saab ekraanil seda dokumenti kerida. Ma olen üsna kindel, et tudengitel ei ole ootust slaidide järgi vaid info järgi. Sel semestril on mõne aine slaidid ka täielik rongiõnnetus 😀
Mõelge, kui kogu õpikukirjastuse tööstus disruptida ja algkoolist alates kõik füüsika, matemaatika ja keemia õppematerjalid ja ülesanded oleks vormistatud korralikult ja ligipääsetavalt sellises dokumentatsiooni formaadis + alati ligipääsetavalt (ja seadmesõbralikult!) oleks Youtube’is loenguvideod. Ei oleks mingit õpikute tassimist, laenutamist, ostmist vms. Üks korralik repo, kõik muudatused läbi pull requestide. Võimalik, et koolilastel (ja nende vanematel) ei ole ootust õpikute järgi, vaid ligipääsetava info järgi.
Õpilased saaksid raskusastme järgi ülesandeid ette võtta (vajadusel lahendusega), õpetajad üle ülesannete kogu vastava raskusastmega kontrolltöid automaatselt genereerida jne. Koolis meil kogu aeg räägitakse, et kui sulle tundub, et kirjutad sama (või väga sarnast) koodi juba mitmendat korda, siis mõtle võimalusele teha üldisem lahendus (abstraktsioon) 🙂
Õppematerjalid – videod
Pean tunnistama, et TalTechis on kõik 5+ videote osas. Echo360’st (mis on halb) saab videod arvutisse salvestada ja ümber laadida Youtube’i. Aga, tore oleks, kui timestamp’itud loenguvideod oleks kohe seal 🙂 Näiteks nii nagu minu reedeste loengute playlist.
Kuidas ma kodus õpin
Elu on vahepeal edasi läinud. Mul on nüüd pidevas kasutuses 2 arvutit ja kaks 24″ monitori. Kohe selgitan.
1. monitoril (pildil vasakul)
Loenguvideo täisekraanil ja seda mängib minu vana arvuti (Dell XPS 13, mille ostsin 2011). Video jookseb eranditult Youtube’ist, sest seal on klaviatuuri otseteed. Paus, kiiruse muutmine, tagasikerimine, timestampide tegemine – kõik funktsionaalsused on olemas. Lisaks tegin JavaScriptis bookmarkidena (juhend siin) kuni 4x kiirendusega vaatamise.
Echo360 laguneb aktiivse kasutuse ajal kohe ära – see tähendab, et edasi-tagasi kerides kaob mingil hetkel heli ära (või läheb pildiga nihkesse) või kiilub üldse kõik kinni (vajab refreshi). Kiiruse muutmine on menüüde sisse peidetud (otseteid ei ole). Kiiruse muutmist on päriselt VAJA, sest:
kui on vaja tähelepanelikult konspekteerida, siis on hea kiiresti näiteks 0.75x kiiruse peale lülitada.
kui on mingi osa, mida juba valdad või kus õppejõud jääb mingit oma lugu rääkima, saad 4x kiirendusega sellest üle minna. 2x kiirus jääb mõne õppejõu puhul ka väheseks, sest kõne on lihtsalt meeletult aeglane 😀
Timestampimist ja kommentaare Echo360’s ei ole. Aga peatükkide ja teemade sisu kiiremaks leidmiseks on sellest väga abi (näiteks selliselt).
2. monitoril
Tavaliselt IDE, kus on avatud programm ja konspekt (Markdowni dokument). Lisaks loengu slaidid ja Youtube’i video muutmise aken, kuhu kirjutan timestamp’e.
Ma ausõna ei kujuta ette, kuidas peaks päriselt toimival koduõppel toimetama mõni puudust kannatav mitmelapseline pere. Ma ei taha minna ühtegi keskkonda ega pikalt viibida üheski keskkonnas, kus mul selliseid tingimusi töötamiseks ei ole. Ja ma teadvustan endale täielikult, kui priviligeeritud ma olen.
This is overview of my last week’s coding activity. My own projects, escapades and experiments are not included. School only.
I would really like to use Toggl for time tracking as a part of my workflow but I always forget it running. Also my productivity is so much better with (which ever) pomodoro timer that arranges my time into logical work and break units. But the problem with pomodoro is that pomodoro is not for tracking but just time management. So at the moment there is no good solution for me 🙂
Update
It looks better with Goodtime app for pomodoro functionalities.
By using Samsung split screen I can run 2 apps at the same time. Above is Goodtime pomodoro app and below I have Toggl. It was a good discovery for me that for project whole pink box is actually clickable for starting (no need to tap the small play button).
It also works similarly in Filezilla. If you have questions, please leave comments 🙂
Atomftp-remote-edit started to break my files occasionally due to the issue that this Atom package uses ftp in passive mode by default which tries to open too many ports at once. For example if I had large css file then it uploaded only half of it and gave me following 451 and timeout errors:
451-Error during read from data connection 451 Transfer aborted
Timeout (control socket)
Suggestion from my webhosting provider was to use SSH instead of FTP but configuring it is kind of difficult for the first time. So here it is:
Hostname is your hostname
username is your username (username@hostname.ee)
If you have not configured password then you can just leave it empty.
key is private key (not *.pub (public) but the other file) – I wasted some time here.
Initial directory path I got from my webhosting service provider. Without the path to initial directory you will probably get to the root from where it is not possible to navigate anywhere.
I think most difficult in Windows was to find the private key file (and initially to create one). But there are enough tutorials available on how to generate SSH keys. My own notes (which I use quite often) are here.
In Ubuntu the key file is located in …
What I use it for
I have gotten used to using Atom for small edits that need to be done here and there. For example my school dashboard – if I need to add something there then I open the folder in Atomftp-remote-edit, do the edits, ctrl+s and it is live without having any files in my computer.
Also, when I need to work with data in Excel and need to upload it as csv file to the server then instead of saving csv on my computer I do textjoin in excel and copy-paste the content to csv file on server through ftp-remote-edit.
I switched from 1Password password manager to Bitwarden about year ago. Simply because Bitwarden is free while the cost of 1Password was 72 dollars per year (Family version).
Recently browser autofill shortcut stopped working. Today I figured out how to get it work again.
On Chrome open chrome://extensions/shortcuts on your browser and fill the shortcut yourself.
If you use Edge browser then open edge://extensions/shortcuts and fill the shortcut yourself.
If you use Firefox then go to about:addons → Extensions → from the settings icon you can get to manage extension shortcuts.
It is very convenient to autofill logins with ctrl + shift + L. If you have multiple accounts on some webservices (for example you have several Twitter accounts) then you can rotate between these by repeating the shortcut.
On fridays I have up to 9 hours of lecture videos to watch. It is split into 3 x 3h videos. Each “video” on Echo360 is actually 3 files: audio file, video of computer screen (presentation) and view from camera to blackboard.
I download screen and audio files from Echo. In order to get video with audio as one file I join them with: