Mojakoda.si - Sistem Za Opravljanje S Programsko Kodo

  • Uploaded by: Oto Brglez
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Mojakoda.si - Sistem Za Opravljanje S Programsko Kodo as PDF for free.

More details

  • Words: 2,049
  • Pages: 9

 mojakoda.si
–
sistem
za
shranjevanje
 programske
kode
 Referat




Avtor:
Oto
Brglez













 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 












Datum:
21.5.2009




mojakoda.si
–
referat


Kazalo
vsebine
 Uvod ................................................................................................................................................... 3
 Uporabniki
sistema............................................................................................................................. 4
 Ključne
funkcionalnosti ...................................................................................................................... 4
 Dodajanje
in
urejanje
programske
kode......................................................................................... 4
 Brskanje
po
objavljeni
kodi ............................................................................................................. 5
 Označevanje,
komentiranje
in
ocenjevanje .................................................................................... 6
 Iskanje
po
programski
kodi............................................................................................................. 6
 API
za
iskanje
in
opravljanje
s
kodo ................................................................................................ 6
 Oglaševanje
in
delovanje.................................................................................................................... 7
 Tehnologije
in
tehnična
izvedba
sistema............................................................................................ 7
 Zaključek............................................................................................................................................. 8
 


Oto
Brglez



2
/
9


mojakoda.si
–
referat



 Uvod
 Večina
programerjev
se
med
svojim
delom
srečuje
z
različnimi
problemi.
Velikokrat
so
ti
problemi
 že
bili
rešeni
in
dokumentirani.
V
duhu
današnjega
časa
‐
ko
je
vsa
vsebina
dosegljiva
na
spletu
in
 je
glavno
orodje
sodobnega
programerja
iskalnik
‐
se
postavlja
vprašanje
»kako
najhitreje
poiskati
 rešitev
za
moj
projekt?«
 
 S
pomočjo
izkušenj
in
komunikacije
z
ostalimi
programerji
smo
se
poskušali
vprašati
kam
 programerji
danes
shranjujejo
svoje
delčke
kode.
Kako
jih
organizirajo,
da
jih
ko
jih
spet
 potrebujejo
hitro
najdejo?
Kam
se
obrnejo,
ko
potrebujejo
pomoč
pri
programiranju?
Kje
in
kaj
 iščejo?
 
 Odgovor
na
ta
vprašanja
ponuja
sistem
mojakoda.si.
Mojakoda
je
spletna
storitev,
ki
omogoča
 vsakumur,
ki
se
uspešno
prijavi,
shranjevanje
svojih
delčkov
programske
kode.
To
programsko
 kodo
ustrezno
uvrsti
in
označi.
S
pomočjo
sistema
pa
lahko
po
objavljeni
kodi
išče
in
brska.
 
 Spletna
stran
mojakoda.si
je
opremljena
tudi
s
socialnimi
storitvami
in
ključnimi
funkcionalnostmi
 pojma
splet
2.0.
Funkcionalnostmi
kot
so
komentiranje,
označevanje,
favorizacija
in
RSS1
kanali.
 Stran
je
opremljena
s
funkcionalnostmi
zato,
da
bi
programerjem
postala
dober
pripomoček,
ki
se
 lahko
uporablja
pri
sakdanjem
delu.
 
 























































 1 
RSS
je
družina
XML
datotečnih
oblik
za
spletno
zlaganje
(angl.
web
syndication),
ki
ga
uporabljajo
 spletne
strani,
ki
nudijo
novice,
ter
tako
imenovani
spletni
dnevniki
(angl.
weblog).
(Wiki,
2009)


Oto
Brglez



3
/
9


mojakoda.si
–
referat
 


Uporabniki
sistema
 »V
letu
2007
je
bilo
v
SLO
417.500
internetnih
naročnikov«
(RIS,
2009).
Med
vsemi
temi
naročniki
 je
veliko
programerjev
in
razvijalcev
programske
opreme,
ki
želijo
shranjevati
svojo
programsko
 kodo.
Ti
ljudje
so
ciljna
publika
sistema
mojakoda.
Pri
gradnji
sistema
je
bil
poglavitni
vir
želja
in
 zahtev
povprečen
programer,
ki
programira
v
popularnih
in
najbolj
razširjenih
programskih
jezikih.
 Sistem
poskuša
tega
uporabnika
opremiti
z
novim
orodjem.
 
 Dostop
do
sistema
je
enostaven.
Vsak
obiskovalec
opravi
proces
registracije
v
katerem
si
izbere
 svoje
željeno
uporabniško
ime
in
geslo,
ter
pove
svojo
elektronsko
pošto.
Elektronska
pošta
je
 potrebna,
ker
lahko
s
pomočjo
maila
ugotovimo,
če
gre
za
pravilnega
uporabnika
oziroma,
lahko
 ohranjamo
stik
z
uporabniki
tudi
preko
elektronske
pošte.
 
 Sistem
pozna
dva
tipa
uporabnikov.
Prijavljene(registrirane)
in
obiskovalce.
Obiskovalci
lahko
stran
 samo
ogledujejo,
ne
morejo
pa
nastopati
kot
akterji
pri
določenih
opravilih.
Lahko
brskajo
po
kodi
 in
iščejo
z
uporabo
iskalnika.


Ključne
funkcionalnosti
 Računalnik
že
dolgo
ni
več
samo
stroj
za
računanje
in
ga
lahko
z
algoritmi
izraženimi
s
programsko
 kodo
usmerjamo
in
vodimo.
(Žumer,
V.
2003)
je
ključna
funkcionalnost
sistema
zbiranje
teh
 algoritmov
ali
kratkih
delčkov
programske
kode.
 Dodajanje
in
urejanje
programske
kode
 Izvorno
kodo2
lahko
dodajamo
s
pomočjo
enostavnega
obrazca.
Obrazec
je
dosegljiv
preko
spletne
 strani
ob
prejšnji
obvezni
prijavi.
Pri
dodajanju
programske
kode
moramo
izbrati
programski
jezik3,
 naslov
in
označbe
–
seveda
pa
zraven
vpišemo
svojo
kodo.
Obrazec
za
dodajanje
kode
ima
tudi
 posebno
polje,
ki
pove
ali
je
objavljena
koda
javna
ali
zasebna.
Zasebno
kodo
lahko
ogleduje
samo
 tisti,
ki
jo
je
objavil,
javno
kodo
pa
lahko
ogledujejo
vsi
uporabniki
sistema.


Slika:
1
Dodajanje
izvorne
kode




























































 2 
Izvorna
koda
(angleško
source
code)
je
skupina
navodil
napisana
v
programskem
jeziku,
 namenjena
lažjemu
razumevanju
in
hitrejšemu
razvoju.
(Wiki,
2009)
 3 
Programski
jezik
je
skupek
pravil,
podatkovnih
struktur
in
vmesnikov,
ki
programerju
služijo
kot
 orodje
za
izdelavo
programa.
(Wiki,
2009)
 Oto
Brglez



4
/
9


mojakoda.si
–
referat
 Brskanje
po
objavljeni
kodi
 Na
strani
je
sistem
za
brskanje
po
kodi.
Omogoča
izbiro
programskega
jezika
in
na
podlagi
izbora
 prikaže
vso
svežo
kodo
razvrščeno
glede
na
datum
objave.
Brskanje
je
mogoče
glede
na
jezik,
čas
 ali
označbo.
Pri
brskanju
kode
so
izpostavljeni
podatki
kot
so
datum
objave,
avtor
objave,
število
 objav,
zadnji
vnos.
Vsak
programski
jezik
pa
je
opremljen
tudi
s
svojo
barvno
kodo,
ki
poskrbi,
da
 programski
jezik
bolj
prepoznaven.

 


Slika:
2
Prikaz
vse
kode






Slika:
3
Prva
stran
‐
Prikaz
vse
kode


Oto
Brglez



5
/
9


mojakoda.si
–
referat
 Označevanje,
komentiranje
in
ocenjevanje
 Vsa
objavljena
in
javno
vidna
koda
ima
tudi
možnost,
da
jo
ustrezno
komentiramo,
ocenimo
ali
 označimo.
Označbe4
–
Tage,
lahko
dodajo
samo
avtorji
določene
kode.
Označbe
so
preproste
 besede
ali
besedne
zveze,
ki
so
ključne
v
objavljeno
kodo.
S
pomočjo
označb
lahko
lažje
vsebinsko
 in
logično
povežemo
določene
vsebine,
ki
obravnavajo
sorodno
tematiko
ali
problem.
S
pomočjo
 označb
mojakoda
gradi
oblak
označb5.
 
 Programsko
kodo
lahko
prijavljeni
uporabniki
tudi
komentirajo.
Komentarji
so
omogočeni
zaradi
 tega,
ker
je
pomembna
interakcija
med
avtorjem
kode
in
tistim,
ki
jo
želijo
uporabiti.

 
 Vsaka
objavljena
koda
ima
tudi
možnost
ocene.
S
pomočjo
ocene,
ki
ji
dodajo
uporabniki
je
 mogoče
ugotoviti
kako
dobra
je
določena
koda,
oziroma
kako
pomembna
je
v
primerjavi
z
ostalimi
 prispevki.
Ob
kodi
je
prikazana
povprečna
ocena,
ki
se
preračuna
iz
vseh
oddanih
ocen.
 Iskanje
po
programski
kodi
 Celoten
sistem
je
optimiziran
za
iskanje.
Sistem
pozna
dva
tipa
iskanja
‐

iskanje
po
vsebini
s
 pomočjo
vgrajenega
iskalnika
in
iskanje
s
pomočjo
spletnih
iskalnikov.
Za
iskanje
po
vsebini
sta
 vgrajena
dva
iskalnika
enostaven,
ki
je
prikazan
v
zgornjem
delu
strani
in
napeden
–
do
katerega
 pridemo,
če
obiščemo
napredno
iskanje.
Pri
iskanju
je
vgrajen
tudi
mehanizem,
ki
išče
po
 programski
kodi
med
tem,
ko
vpisujemo
kaj
iščemo.
Tako
lahko
najdemo
zadetke
še
preden
 dokonca
zapišemo
kaj
iščemo.
Iskanje
je
mogoče
po
vsej
kodi,
pri
naprednem
iskanju
pa
lahko
 dodamo
še
časovni
doseg,
programski
jezik
in
avtorja.
 
 Iskanje
s
pomočjo
spletnih
iskalnikov
je
zelo
pomembno.
Danes
večina
uporabnikov
spleta
 uporablja
spletne
iskalnike
kot
začetno
točko
svojega
sprehoda
po
spletu.
Večina
uporabnikov
 tako
recimo
v
spletnem
iskalniku
napiše
kaj
išče
–
ta
pa
jih
potem
popelje
na
ustrezno
vsebino.
 Mojakoda
je
pripravljena
in
optimizirana
za
iskanje
s
pomočjo
spletnih
iskalnikov.
Vpisana
je
v
vse
 večje
spletne
iskalnike
in
periodično
tudi
kliče
spletne
pajke,
da
poberejo
in
indeksirajo
vsebine.
 
 Sama
vsebina
na
sistemu
mojakoda
je
tako
indeksirana
dvakrat
dnevno
iz
dveh
storitev.
Prva
 storitev,
ki
poindeksira
vso
programsko
kodo
je
na
strežniku
nameščeni
sistem
indeksiranja,
ki
se
 uporablja
tudi
pri
iskanju
po
strani.
Drugi
mehanizem
pa
je
indeksiranje
s
pomočjo
spletnih
pajkov,
 ki
se
kličejo
ob
določeni
uri.
Čas
indeksiranja
je
prilagojen
prometu
–
indeksiranje
se
izvede
po
 koncu
»delovnega
dne«
in
v
»času
kosila«.
(Tara,
C.,
2008)
 API
za
iskanje
in
opravljanje
s
kodo
 Sistem
mojakoda.si
ima
vgrajen
tudi
API6.
API
omogoča,
da
različni
programerji
lahko
napišejo
svoj
 odjemalec
kode
iz
sistema
mojakoda.si
in
tako
dobijo
dostop
do
kode,
ki
je
vidna
na
strani.
Z
 uporabo
API‐ja
lahko
dodajajo
kodo,
urejajo
kodo
in
iščejo
po
kodi.
API
podpira
JSON
protokol7,
ki
 je
zelo
preprost
za
implementacijo
in
je
zelo
razširjen
na
področju
spletnih
API‐jev.
 























































 4 
Angleško:
Tag.
Označba
je
nehierarhična
ključna
beseda
ali
besedna
zveza,
ki
jo
dodelimo
 informaciji.
(Informaciji
kot
je
spletna
povezava,
slika
ali
datoteka)
(Wiki,
2009)
 5 
Angleško:
Tag
cloud.
Oblak
označb
ali
oblak
besed
je
obteženi
seznam,
kjer
ima
vsaka
beseda
ali
 označba
glede
na
število
prisotnosti
ustrezno
preračunano
velikost.
(Wiki,
2009)
 6 
Angleško:
API
‐
Application
Programming
Interface.
Zbirka
rutin,
podatkovnih
struktur,
razredov,
 in
protokolov,
ki
jih
prinašajo
knjižnice
z
namenom
lažjega
grajenja
aplikacij.
(Wiki,
2009)
 7 
Angleško:
JavaScript
Object
Notation
–
Lahek
izmenjevalni
podatkovno
izmejevalni
format,
ki
ga
 enostavno
berejo
in
pišejo
ljudje
in
naprave.
Je
zasnovan
po
standardu
ECMA‐262
3rd
Edition
–
 December
1999
 Oto
Brglez



6
/
9


mojakoda.si
–
referat


Oglaševanje
in
delovanje
 Za
delovanje
sistema
sta
poleg
vse
tehnologije
najpomembnejša
dva
faktorja.
Uporabniki,
ki
se
 vračajo
na
spletno
stran
in
oglasi
prikazani
na
vrhu
spletne
strani.
V
primeru,
da
na
stran
ne
pride
 dovolj
uporabnikov
ni
sveže
kode
in
če
ni
sveže
kode,
stran
ne
privablja
novih
in
starih
 uporabnikov.
Celotna
uporaba
sistema
je
brezplačna.
Za
pokrivanje
stroškov
delovanja
so
na
vrhu
 strani
bojavljeni
oglasi,
ki
ob
kliku
obiskovalca
preko
posredniške
storitve
prinesejo
skrbniku
 sistema
določeno
prej‐dogovorjeno
vrednost.
 
 Na
spletni
strani
mojakoda.si
je
nameščen
oglaševalni
sistem
Httpool,
ki
zagotavlja
kontekstno
 oglaševanje.

 
 Kontekstno
oglaševanje
je
oblika
spletnega
oglaševanja
za
katero
je
značilno,
da
se
oglasi
 prilagajajo
vsebini
spletnega
mesta.
V
primerjavi
s
klasičnim
pasičnim
oglaševanjem
je
kontekstno
 oglaševanje
veliko
učinkovitejše,
saj
je
vsebina
oglasov
prilagojena
vsebini
spletnega
mesta.
Ker
se
 načeloma
prikazujejo
pravi
oglasi
pravemu
ciljnemu
občinstvu,
je
posledično
tudi
odzivnost
na
 kontekstne
oglase
višja.
Spletnim
uporabnikom
so
namreč
všeč
nevsiljivi
oglasi,
ki
so
prilagojeni
 njihovim
potrebam.
Oglasi,
ki
so
povezani
z
vsebino
spletne
strani,
so
zelo
zanimivi
tudi
za
 založnike,
saj
jim
zaradi
večje
učinkovitosti,
prinašajo
tudi
višje
oglaševalske
prihodke.
Obiskovalci
 spletne
strani
bodo
namreč
raje
klikali
na
oglase,
ki
so
v
testni
povezavi
s
spletno
stranjo,
kjer
se
 nahajajo.
(Radoš
Skrt.
2008)


Tehnologije
in
tehnična
izvedba
sistema


Sistem
mojakoda.si
je
spletna
storitev
napisana
v
programskem
jeziku
Python8.
Programski
jezik
 Python
uporablja
okolje
za
hitri
razvoj
Django9,
podatkovno
bazo
MySQL10,
spletni
strežnik
 Apache11.
Iskalni
sistem
Lucene12
oziroma
Sphinx.
Za
začasno
shranjevanje
sistem
memcached.
 Vse
teče
na
operacijskem
sistemu
GNU/Linux,
na
distribuciji
Ubuntu13.
(Brglez,
O.,
Koda)
 
 Pri
gradnji
sistema
so
bila
uporabljena
isključno
odprtokodna
razvojna
orodja.
Orodja
so
bila
 uporabljena
zaradi
tega,
ker
je
celotna
filozofija
sisteam
mojakoda.si,
da
je
potrebno
znanje
in
 tehnologijo
deliti
–
filozofijz,
ki
je
temelj
vse
odprtekode.
Poleg
tega
je
delo
z
odprtokodnimi
orodji
 za
projekte
kot
je
mojakoda,
projekte,
kjer
je
malo
oziroma
nič
finančnih
sredstev
veliko
bolj
 poceni.
Tako
je
so
največji
stroški
sistema
oglaševanje,
razvoj
in
strojna
oprema.
 























































 8 
Python
je
tolmačeni
programski
jezik,
ki
ga
je
ustvaril
Guido
van
Rossum
leta
1990.
Python
ima
 popolnoma
dinamične
podatkovne
tipe,
samodejno
upravlja
s
pomnilnikom
in
podpira
 funkcijonalno,
imperativno
oziroma
proceduralno,
strukturirano
in
objektno
orientirano
 računalniško
programsko
paradigmo.
(Wiki,
2009)
 9 
Django
je
v
Pythonu
napisan
sistem
hiter
razvoj
spletnih
aplikacij
(Django,
2009)
 10 
MySQL
je
sistem
za
upravljanje
s
podatkovnimi
bazami.
MySQL
je
odprtokodna
implementacija
 relacijske
podatkovne
baze,
ki
za
delo
s
podatki
uporablja
jezik
SQL.
(Wiki,
2009)
 11 
Spletni
strežnik
Apache,
velikokrat
samo
Apache,
je
spletni
strežnik,
ki
igra
ključno
vlogo
pri
 širjenju
spleta.
Bil
je
prva
alternativa
Netscapeovemu
spletnemu
strežniku,
trenutno
znanemu
kot
 spletni
strežnik
Sun
Java
System.
Od
oktobra
2007
pa
je
bilo
na
Apachijevem
strežniku
postavljenih
 približno
48%
vseh
spletnih
strani.
(Wiki,
2009)
 12 
Lucene
je
polno
tekstnovi,
visoko‐zmogljivostni
tekstovni
iskalni
pogon,
katerega
jedro
je
 napisano
v
Javi.
Razširljivost
in
hitrost,
ga
naredita
primernega
za
katerokoli
iskalno
 implementacijo.
(Lucene,
2009)
 13 
Ubuntu
je
dovršen
operacijski
sistem,
ki
temelji
na
GNU/Linuxu
in
ki
je
prosto
dostopen
tako
 širši
skupnosti
kot
profesionalnim
uporabnikom.
(Ubuntu.si,
2009)
 Oto
Brglez



7
/
9


mojakoda.si
–
referat
 


Zaključek
 Sistem
mojakoda.si
je
namenjen
vsem,
ki
želijo
pri
shranjevati
svojo
kodo.
Želja
avtorja
sistema
je,
 da
bi
sistem
postal
širše
dostopen
vsem
in
da
bi
postal
vsakodnevno
orodje
pri
delu
programerjev.
 S
to
mislijo
se
bo
spletna
stran
in
celoten
sistem
napajal
dokler
bodo
ljudje
orodje
potrebovali
in
 dokler
bo
dosti
ljudi,
ki
bodo
prispevali
kodo.
 
 Želja
je,
da
bi
sistem
postal
orodje
tako
za
napredne
razvijalce
kot
začetnike.
Hkrati
pa
prostor,
kjer
 lahko
pustiš
delček
svojega
dela
in
ga
nesebično
deliš
z
množicami.
 
 
 Oto
Brglez,
Maj
2009
 
 


Slika:
4
Logotip
mojakoda.si


Oto
Brglez





8
/
9


mojakoda.si
–
referat


Viri
 RIS
(24.03.2009).
V
letu
2007...
Prevzeto
20.5.2009
is
RIS:
 http://www.ris.org/index.php?fl=2&lact=1&bid=10850&parent=22&cat=860&p1=276&p2=285&p 3=1354&p4=1488&id=1488
 
 Žumer,
V.
(2003).
Uvod
v
programiranje
in
programski
jezik
C++.
Maribor:
Inštitut
za
računalništvo.
 
 Wiki.
(11.01.2009).
RSS
(protokol).
Prevzeto
20.5.2009
iz
Wikipedije:
 http://sl.wikipedia.org/wiki/RSS_(protokol)
 
 Wiki.
(27.04.2009).
Izvorna
koda.
Prevzeto
20.5.2009
iz
Wikipedije:
 http://sl.wikipedia.org/wiki/Izvorna_koda
 
 Wiki.
(25.04.2009).
Programski
jezik.
Prevzeto
20.5.2009
iz
Wikipedije:
 http://sl.wikipedia.org/wiki/Programski_jezik
 
 Wiki.
(25.04.2009).
Tag
(metadata).
Prevzeto
20.5.2009
iz
Wikipedije:
 http://en.wikipedia.org/wiki/Tag_(metadata)
 
 Wiki.
(12.05.2009).
Tag
cloud.
Prevzeto
20.5.2009
iz
Wikipedije:
 http://en.wikipedia.org/wiki/Tag_cloud
 
 Tara,
C.
(2008).
Google
Hacks.
O'Reilly
&
Associates,
Inc.,
1005
Gravenstein
Hwy
N.,
Sebastopol
 
 Radoš
Skrt,
Nasvet.com
(03.2008).
Prevzeto
20.5.2009
iz
Slovenske
mreže
za
kontekstno
 oglaševanje.
http://www.nasvet.com/kontekstno_oglasevanje/
 
 Brglez,
O.
(20.04.2009).
O
kodi.
Prevzeto
20.5.2009
iz
mojakoda.si:
http://www.mojakoda.si/okodi

 


Wiki.
(12.05.2009).
Tag
cloud.
Prevzeto
20.5.2009
iz
Wikipedije:
 http://en.wikipedia.org/wiki/Tag_cloud
 


Wiki.
(13.05.2009).
Python
(programski
jezik).
Prevzeto
21.5.2009
iz
Wikipedije:
 http://sl.wikipedia.org/wiki/Python_(programski_jezik)
 
 Django
(2009).
Django.
Prevzeto
21.5.2009
iz
Dokumentacije:
 http://docs.djangoproject.com/en/dev/
 
 Wiki.
(15.05.2009).
MySQL.
Prevzeto
21.5.2009
iz
Wikipedije:
 http://sl.wikipedia.org/wiki/MySQL
 


Wiki.
(20.02.2009).
Spletni
strežnik
Apache.
Prevzeto
21.5.2009
iz
Wikipedije:
 http://sl.wikipedia.org/wiki/Spletni_stre%C5%BEnik_Apache
 


Lucene.
(09.03.2009).
Lucene.
Prevzeto
21.5.2009
iz
Uradne
strani:
 http://lucene.apache.org/java/docs/
 


Ubuntu.si
(2009).
Ubuntu.si.
Prevzeto
21.5.2009
iz
Uradne
strani:
 http://ubuntu.si/
 Oto
Brglez



9
/
9


Related Documents


More Documents from ""

Vi221.pdf
June 2020 0
August 2019 10
August 2019 20