Veebiarenduse juhend

Khan Academy lähtekoodi oma arvutis jooksutamine

    1. Paigalda oma arvutisse Python 2.5.4 programmeerimiskeel. Google App Engine vajab just seda versiooni, mitte uuemat ega vanemat.
    2. Paigalda oma lemmik koodiredaktor, nagu Notepad++, Vim, Emacs vms.
    3. Paigalda TortoiseHg (koodi versioonihaldusprogramm) ja loe TortoiseHg kasutamise juhendit (või kui kasutad Mercuriali ilma kasutajaliideseta, siis loe Mercuriali kasutamise juhendit.)
    4. Klooni TortoiseHg abil Khan Academy lähtekood soovitatavalt aadressilt "https://bitbucket.org/kaekool/ebastabiilne" või Mercuriali abil käsurealt käsuga "hg clone https://bitbucket.org/kaekool/ebastabiilne ". Kui plaanid ebastabiilsesse koodimuudatusi esitada, siis tee Bitbucketis omale konto ja tee sinna omale ebastabiilse klooni, et siis oma arvutis tehtud koodimuudatusi lükata oma reposse ja sealt ebastabiilsesse. Ebastabiilne on peaaegu sama lähtekood, mis Khan Academy enda repos: https://khanacademy.kilnhg.com/Code/Website/Group/stable selle erinevusega, et pole sisult muutunud kloonimise hetkest ja on kohandatud edasi kloonimiseks: harjutused ei ole enam eraldi ülejäänud repost ja tänu sellele ei teki git-iga probleemi repo kloonimisel, on lisatud andmebaasi fail current.sqlite, jms.
    5. Ava lähtekoodi kaust, kustuta sealt fail nimega "clienttemplates".
    6. Ava Command Prompt või muu käsurea programm admin-õigustega (parem klõps käivitusfailil ja open with administrator rights).
    7. Sisesta käsureal käsk "mklink /d C:\lähtekoodi\kausta\aadress\clienttemplates C:\lähtekoodi\kausta\aadress\javascript". Kui su kausta aadressis on mõni tühikuga kausta nimi, siis tuleb selle nimetus panna jutumärkidesse. Näiteks C:\"KAE Kool"\"Khan Academy lähtekood". Vastasel juhul käsk ei toimi. (Windows XP kasutajatel on käsuks linkd ja sellest pikemalt siin). Unix baasil op. süsteemides on selle käsu asemel "ln -s javascript/ ./clienttemplates"
    8. Lae allaja paigalda Google App Engine SDK. Ava GAE Launcher, vajuta Edit ja Preferences.. ning suuna GAE SDK oma Python 2.5.4 käivitusfailile, näiteks C:\Program Files\Python 2.5.4\python.exe
    9. Vajuta Launcher'is File ja Add existing application.. ning osuta kloonitud lähtekoodi kaustale. Käivita lähtekood rohelise nupuga ja ava see brauseris. GAE Launcher paneb esimese rakenduse aadressiks localhost:8080. Sisesta see brauseri aadressiribasse ja peaks avanema Khan Academy esilehe väljanägemisega veebileht.
    10. Nüüd proovi muuta midagi lähtekoodis (näiteks failis nimega homepage, mis asub kaustas nimega templates, on Khan Academy esilehel avanev tekst), salvesta ja vaata, kas brauseris akent värskendades muutub midagi?
    11. Vaata neid viite juhendvideot sellest, kuidas kirjutada harjutusi Khan Academy platvormile: http://vimeo.com/album/1688597/video/28743348
    12. Tõlgi ära mõned matemaatika harjutused ja lükka oma muudatused ebastabiilsesse (või ebastabiilsest tehtud oma klooni).


Tehnoloogiad

KAE Kooli veebiarendusega tegelemiseks kasutame samu tehnoloogiaid, mida kasutatakse Khan Academy (edaspidi KA) arendamisel. KA on ehitatud Google App Engine'i najale. GAE serveri kasutajaliides: https://appengine.google.com/dashboard?&app_id=s~kae-kool. See tähendab, et KA veebileht kasutab oma töös paljusid Google veebirakendusi ja paikneb ise Google serverites, mis teeb ta palju kiiremaks ja turvalisemaks ning vabastab arendajaid riistvaraga tegelemise vaevast.

Veebiarendusse panustamiseks on vaja õppida juurde kaasaegseid ja võimsaid tehnoloogiaid, mis tulevad kindlasti hiljem kasuks ka teiste projektidega tegelemisel. Nendeks on:


Keeled

  • Python on programmeerimiskeel, milles on kirjutatud kogu KA-d töötama panev kapotialune osa. KAE Kooli arendusse panustamiseks on vaja paigaldada oma arvutisse&nbsp python 2.5.4. Python on kergesti loetav ja kiirelt õpitav. Seda soovitatakse esimese programmeerimiskeelena selle intuitiivse kirjaviisi pärast. Selle õppimiseks soovitame kasutada avatud õpematerjali "How To Think Like A Computer Scientist".
  • HTML ja CSS on tavalised veebilehe välimust kirjeldavad keeled. neid pole vaja paigaldada. Õppida saab neid siit: http://www.w3schools.com/html/
  • JavaScript-is on kirjutatud see osa KA-st, mis ühendab veebilehe kujunduse selle kapoti all oleva osaga. Selle õppimiseks on palju häid materjale:
  • Käsurea kasutamine ja käsud. On vajalik käsurea programm:
      • Windowsil on kaasas Command Prompt, mis ajab asja ära
      • Sagedasemaks mugavamaks kasutamiseks soovitan Console2-te
      • Linux'i käskude eelistajatele soovitan Cygwin Terminali-i


Tööriistad

  • BitBucket - Üks populaarseim koodihoidla, mis on tasuta, soodustab koostööd ja avatust ning sobib meie teiste tööriistadega. Sinna tuleb KAE Kooli repositoorium, viki ja rikete teatamise/ ettepanekute esitamise keskkond (hetkel peale lähtekoodi pole seal midagi).
  • Mercurial või selle edasiarendus Windowsile TortoiseHg (lisatud graafilise kasutajaliidesega) on hajutatud programmikoodi versioonihaldussüsteem (DVCS). Enamvähem samu omadusi ja funktsionaalsust võimaldavad ka Bazaar ja Git, kuid erinevalt neist on Mercurial ehitatud pythoni jaoks ja on ise kirjutatud pythonis. Khan Academy kasutab just Mercurial'i. Sellistest programmidest ja nende pakutavatest võimalustest saate põhjalikuma ülevaate Wikipeedia võrdluses: http://en.wikipedia.org/wiki/Comparison_of_revision_control_software
  • Sobiv tekstiredaktor - võimaldab kirjutada programmikoodi.
      • Notepad++(lihtsa välimuse ja mugava kasutatavusega, lihtne õppida, toetab väga paljusid programmeerimiskeeli ja OS-e)
      • Emacs (sellega saab teha kõike, kui paigaldad vajalikud laiendused (nt mängida muusikat =)). Kasutada on mugav. Aeglasem kui teised tekstiredaktorid.)
      • Vim (tekstiredaktor, kus kõik võimalused on ligipääsetavad klaviatuurilt, kuid hiirega ei saa midagi teha. Tuleb unustada ära teiste tekstiredaktorite käsud ja käitumistavad ning õppida ära terve käskude keele ja uue kultuuri. Selleks, et Vim-i juhtida, tuleb lülituda ümber kirjutamise režiimist juhtimise režiimi.)
      • ja palju teisi
  • Google App Engine SDK for Python - Võimaldab:
      • käivitada enda arvutis asuvat veebilehe lähtekoodi ja avada seda brauseris, nagu see oleks läbi interneti ligipääsetav tavaline veebileht.
      • avada oma arvuti serverina teistele arvutitele (et lasta teistel otse pääseda ligi sinu muudetud veebilehele).
      • laadida valmis lähtekoodi üles veebilehena google-serverisse (KAE Kooli uusi versioone laeb ülesse ainult üks inimene)
  • Handlebars on rakendus veebilehe sisu eraldamiseks kogu muust programmikoodist eraldi HTML failidesse.
  • Koodikogud:
      • jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development.
      • MathJax is an open source JavaScript display engine for mathematics that works in all modern browsers.
      • LaTex is a high-quality typesetting system; it includes features designed for the production of technical and scientific documentation. LaTeX is the de facto standard for the communication and publication of scientific documents.
      • Jinja is a full featured template engine for Python. It has full unicode support, an optional integrated sandboxed execution environment, widely used and BSD licensed.