Skip to content

GeneracijaKonzolePrenosne
IAtari Home Pong
Coleco Telstar
Magnavox Odyssey
Nintendo Color TV-Game
IIAtari 2600 & 5200
Bally Astrocade
Coleco ColecoVision
Fairchild Channel F
Magnavox Odyssey²
Mattel Intellivision
Epoch Game Pocket Computer
Microvision Milton-Bradley
IIIAtari 7800
Nintendo Famicom/NES
Sega SG-1000
Sega Master System
IVNEC PC Engine/TurboGrafx-16
Nintendo Super NES
Sega Mega Drive/Genesis
SNK Neo Geo
Atari Lynx
NEC TurboExpress
Nintendo Game Boy
Sega Game Gear
VAmiga CD32
Atari Jaguar
Nintendo 64
Sega Saturn
Sony PlayStation
Nintendo Game Boy Color
Nintendo Virtual Boy
Sega Genesis Nomad
SNK Neo Geo Pocket
VIMicrosoft Xbox
Nintendo GameCube
Sega Dreamcast
Sony PlayStation 2
Bandai WonderSwan Color
Nintendo Game Boy Advance
Nokia N-Gage
SNK Neo Geo Pocket Color
VIIMicrosoft Xbox 360
Nintendo Wii
Sony PlayStation 3
Nintendo DS
Sony PlayStation Portable
VIIIMicrosoft Xbox One
Nintendo Switch
Nintendo Wii U
Sony PlayStation 4
Nintendo 3DS
Sony PlayStation Vita

Recimo da je definisana MTU veličina 1500 bajtova (može da se proveri komandom ifconfig). Od 1500 odbijemo 28 pošto toliko bajtova ide na zaglavlja i dobijemo veličinu paketa od 1472 bajta. Ako pokrenemo komandu

ping -f -c 10000 -s 1472 192.168.1.1

dobićemo sledeći rezultat:

10000 packets transmitted, 10000 received, 0% packet loss, time 856ms
rtt min/avg/max/mdev = 0.588/0.643/3.245/0.070 ms, ipg/ewma 0.685/0.659 ms

što znači da mu treba u proseku oko 0.643 milisekunde da pošalje 1500 bajtova i da primi natrag 1500 bajtova. 1500 + 1500 = 3000 bajtova, puta 8 = 24000 bitova odnosno 24kb. 24kb podeljeno sa 0.643 milisekunde daje brzinu od oko 37 Mb/s.

stackoverflow.com

Interaktivna televizija predstavlja proces obogaćivanja tradicionalne TV tehnologije modernim servisima. Ti servisi mogu biti video na zahtev, glasanje u realnom vremenu, kupovina preko Interneta, eBanking itd. Vrste interaktivnosti:

  • interaktivnost sa TV uređajem
  • interaktivnost sa TV sadržajem
  • interaktivnost sa povezanim TV sadržajem

Interaktivnost sa TV uređajem

Interaktivnost sa TV uređajem je najjednostavniji oblik uticaja na sveukupni TV doživljaj a zasniva se na upotrebi daljinskog upravljača u cilju promene programa, aktiviranja videa na zahtev, pauziranja i premotavanja programa, preskakanja reklama itd. Ova vrsta interaktivnosti ne menja sam sadržaj koji se prikazuje već samo način na koji korisnik kontroliše konzumiranje tog sadržaja.

Interaktivnost sa TV sadržajem

Interaktivnost sa TV sadržajem se često smatra pravom Interaktivnom televizijom. U ovom obliku interaktivnosti, sadržaj programa se menja u zavisnosti od korisnikovog inputa. Na primer, Black Mirror: Bandersnatch je drama u kojoj gledaoci biraju ili utiču na tok scenarija i kraj. Jednostavniji oblici uticaja na TV sadržaj su integracija glasanja, pitanja, komentara i drugih virtuelnih doprinosa gledalaca.

Interaktivnost sa povezanim TV sadržajem

Ova vrsta interaktivnosti se smatra televizijom budućnosti i obuhvata pribavljanje dodatnih informacija od strane gledaoca o tome šta se trenutno prikazuje na TV-u, kakva je vremenska prognoza, informacije o sportu, filmovima, vesti itd. Slično tome, pribavljanje dodatnih informacija o tome šta se trenutno reklamira na TV-u kao i mogućnost da se to kupi direktno iz TV-a (T-commerce).

Povratna sprega

Prilikom menjanja TV sadržaja ili pribavljanja informacija o povezanim sadržajima, bitna stvar je povratna sprega odnosno način na koji gledalac šalje svoj input emiteru. Načini realizacije povratne sprege:

  • korisnici kablovske televizije primaju program preko kabla koji se može iskoristiti kao povratna sprega; slično je i za korisnike IPTV-a
  • u Accidental Lovers gledaoci šalju SMS poruke i na osnovu ključnih reči iz tih poruka se odvija dalji tok radnje
  • Hugo je TV igra u kojoj gledaoci koriste telefon sa tonskim biranjem kako bi upravljali glavnim junakom
  • tokom Otvorenog prvenstva Australije u tenisu 2012. godine gledaoci su koristili aplikaciju kako bi dali svoje sugestije koja pitanja komentator treba da postavi teniserima posle meča

Vikipedija

U fajlu

.gitignore

navodimo putanje do fajlova i foldera koje treba na nivou projekta isključiti iz Gita. U fajlu

.git/info/exclude

možemo da navedemo putanje do fajlova i foldera koje treba lokalno isključiti iz Gita. Ako nam je Git već uhvatio izmenu na nekom od fajlova koje treba ignorisati, kucamo

git update-index --skip-worktree fajl

Prelazak sa jedne major verzije PostgreSQL-a na drugu (npr. sa verzije 10 na 11) zahteva migraciju baze. Procedura:

Najpre zaustavimo servis:

systemctl stop postgresql.service

Zatim izmestimo naše podatke i kreiramo direktorijum za nove podatke:

mv /data/postgres/data /data/postgres/olddata
mkdir /data/postgres/data /data/postgres/tmp
chown postgres:postgres /data/postgres/data /data/postgres/tmp

Pošto ja baze čuvam na nestandardnom mestu, imam dodatni korak da postgresu kažem gde se nalaze podaci. To se radi tako što se u fajlu

/usr/lib/systemd/system/postgresql.service

izmene putanje za Environment i PIDFile.

Sledeći korak je da se ulogujemo kao korisnik postgres i kreiramo novi klaster baza:

su - postgres
initdb -D '/data/postgres/data'

Na kraju ide sama migracija podataka:

pg_upgrade -b /opt/pgsql-10/bin - B /usr/bin -d /data/postgres/olddata -D /data/postgres/data

U slučaju da radimo migraciju između verzija PostgreSQL-a koje "nisu jedna do druge" (npr. sa verzije 9.5 na 11), lakše će biti da bazu još dok smo pod starim PostgreSQL-om snimimo u fajl pa da je nakon nadogradnje vratimo iz fajla u klaster.

Kao i u gornjem primeru, prvo izmestimo naše podatke:

mv /data/postgres/data /data/postgres/olddata
mkdir /data/postgres/data /data/postgres/tmp
chown postgres:postgres /data/postgres/data /data/postgres/tmp

Zatim pokrećemo stari server:

/opt/pgsql-9.5/bin/pg_ctl -D /data/postgres/olddata/ start

i prebacujemo bazu u fajl:

pg_dumpall -f /data/postgres/old_backup.sql

Sada možemo da zaustavimo server

/opt/pgsql-9.6/bin/pg_ctl -D /data/postgres/olddata/ stop

instaliramo novi PostgreSQL, kreiramo novi klaster baza, pokrenemo servis i vratimo podatke iz fajla u bazu sa:

psql -f /data/postgres/old_backup.sql postgres

Ako sve radi kako treba možemo da obrišemo /data/postgres/old_backup.sql, /data/postgres/olddata i /data/postgres/tmp.

<?php
$url = "https://store.steampowered.com/app/658850/";

$doc = new DOMDocument;
libxml_use_internal_errors(true);
$doc->loadHTMLFile($url);
libxml_clear_errors();

$xpath = new DOMXpath($doc);

$title = $xpath->query('//div[@class="apphub_AppName"]');
if(count($title)) echo $title[0]->nodeValue . "\n";

$price = $xpath->query('//div[@class="discount_final_price"]');
if(count($price)){
    echo $price[0]->nodeValue . "\n";
} else{
    $price = $xpath->query('//div[@class="game_purchase_price price"]');
    if(count($price)){
        echo trim($price[0]->nodeValue) . "\n";
    }
}


Proizvođači:

  • Academy
  • AMT
  • Aoshima
  • Beemax
  • Belkits
  • Bronco
  • Burago (metal kits)
  • Flyhawk
  • Fujimi
  • Hasegawa
  • Heller
  • Hobby Boss
  • Italeri
  • Kinetic Gold
  • Kitty Hawk
  • Meng
  • Revell
  • Takom
  • Tamiya
  • Trumpeter
  • Wenhsin

Prodavnice:

Sajt https://free.scorespro.com/ je sajt sa kojeg možemo besplatno preuzimati sportske rezultate a koje kasnije možemo kao uslugu da ponudimo u različitim aplikacijama: IPTV, Android, veb itd. Radi poboljšanja ažurnosti sportskih rezultata javlja se potreba za optimizacijom procesa preuzimanja podataka.

Korak 1

Preuzimanje rezultata trenutno funkcioniše na sledeći način: sistemski šedjuler na svaka tri minuta pokreće skript koji skida rezultate za sve sportove redom (fudbal pa zatim košarka pa zatim tenis itd). Prvi korak je da se preuzimanje rezultata razdvoji po sportovima, odnosno, da se preuzimanje rezultata vrši nezavisno za svaki sport što samo po sebi neće ubrzati proces ali će biti dobra osnova za korak 2.

Korak 2

Potrebno je uvesti pravila za preuzimanje podataka. Npr., ako u nekom sportu nema utakmica koje su u toku, frekvencija preuzimanja podataka treba da se smanji sa jednom u tri minuta na npr. jednom u pet ili deset minuta. Sa druge strane, ako u sportu imamo aktivne utakmice, frekvencija preuzimanja podataka može da se poveća na npr. svaki minut.

Drugi primer je sport za koji nemamo zakazane utakmice u datom danu. U ovom slučaju ne bi bila greška ako ne bismo pozivali skript za preuzimanje podataka za taj sport više u tom danu ili, da bismo bili 100% sigurni, možemo za dati sport proveravati rezultate jednom u sat vremena.

Ovaj korak zahteva prelazak sa sistemskog šedjulera na deamon koji ima sopstveni šedjuler preuzimanja podataka.

Korak 3

Za svaki sport imamo listu utakmica, svaka utakmica ima vreme početka. Ako prva utakmica dana počinje u 17 sati, nema razloga proveravati rezultate za ovaj sport barem sat vremena pre početka prve utakmice. U ovom scenariju možemo da ne dobijemo pravovremenu informaciju o promenu statusa zakazane utakmice (npr. vreme početka je pomereno ili je utakmica odložena).

Korak 4

Ako u datom trenutku ne postoji aplikacija koja preko našeg API-ja preuzimaju rezultate, onda verovatno ne postoji potreba ni da mi u tom trenutku preuzimamo rezultate sa https://free.scorespro.com/ 🙂

U nekom ekstremnom scenariju, za svaki sport bi u bazi bilo zabeleženo vreme kada sledeći put treba preuzeti podatke sa https://free.scorespro.com/. Kada aplikacija preko našeg API-ja zatraži rezultate za određeni sport, prvo se proverava da li je prošao trenutak sledećeg preuzimanja podataka. Ako nije prošao, aplikacija dobija natrag postojeće rezultate iz baze. Ako jeste prošao trenutak, rezultati se prvo preuzimaju sa https://free.scorespro.com/, upisuju u bazu, ažurira se vreme kada sledeći put treba preuzeti podatke i onda se aplikaciji vraćaju ti ažurirani podaci (iz baze). U ovom slučaju, taj prvi korisnik koji inicira preuzimanje podataka sa https://free.scorespro.com/ će imati kašnjenje od par sekundi.