iPod Shuffle prve generacije + iTunes + FLAC = FAIL!

objavljeno: 23.12.2010.

Nije mi bila jasna ta priča oko nemogućnosti korištenja audio datoteka kodiranih u FLAC formatu unutar iTunes-a sve dok sam nisam došao u takvu nezgodnu situaciju. Nakon instaliranja novog iTunes-a unutar Windows 7 x64 operacijskog sustava i učitavanja mase zvuka u njegovu biblioteku, primijetih da nešto fali. Upravo one datoteke sa nastavkom .flac nisu prepoznate. Kratak pretraživački manevar ukazuje na mogućnosti krotnje ove životinje, ali na vrlo komplicirane načine. Stoga sam se odlučio na sljedeće:

foobar2000 + iPod manager 0.6.8.8 + upute za korištenje + upute za korištenje konverzije = WIN!

Datum i vrijeme objavljivanja posta u WordPress-u

objavljeno: 17.12.2010.

U slučaju da ti za neki post nedostaje datum objavljivanja vjerojatno koristiš the_date() oznaku predloška (eng. template tag) kao u ovome primjeru:

<p>Objavljeno: <?php the_date(); ?></p>

Razlog je tome što u slučaju objave višestrukih postova na isti dan, the_date() prikazuje datum samo za prvi post (prvo pozivanje oznake the_date()). Prvo rješenje ovoga problema se nalazi u korištenju oznake the_time() sa formatiranjem prikaza datuma i vremena ovisno o želji. Drugi način se svodi na korištenje get_the_date() oznake koja je u WordPressu dostupna od verzije 3.0. Način korištenja je sljedeći:

<p>Objavljeno: <?php echo get_the_date(); ?></p>

Valja dodati kako izostavljanje parametera, tj. ostavljanje prazne zagrade kod oznake the_time() vraća samo vrijeme objave posta pa je formatiranje prikaza nužno.  Izostavljanje parametara kod oznake get_the_time() povlači format datuma odabran u administratorskom sučelju što se čini nešto jednostavnije.

Geolocation i moguće implikacije na sigurnost i privatnost korisnika

objavljeno: 17.12.2010.

HTML5 i nove mogućnosti

Proučavanjem nove nadolazeće revizije HTML standarda moguće je uočiti mnoge zanimljivosti. HTML5 zadržava kompatibilnost sa široko korištenim HTML4 standardom jer u svojoj srži on nije jedna velika stvar, već skup individualnih funkcionalnosti. Kod može provjeriti da li preglednik koji ga obrađuje podržava HTML5 i sukladno s time se mogu koristiti funkcionalnosti kao što su canavas, video ili geolocation. Upravo je ova zadnja funkcionalnost ono što je privuklo moju pažnju i motiviralo pisanje ovog kratkog pregleda. Čitajući Dive Into HTML5, knjigu koja na zanimljiv način pokriva ovu temu, na jednoj od stranica unutar poglavlja o načinima detekcije HTML5 podrške došao sam u mogućnost testiranja geolocation sustava (dostupno i ovdje). Rezultat je bio zapanjujući. Lokator je uspio pronaći moj trenutni položaj u krugu od 10 metara u trenutku kada sam na internet bio spojen sa osobnog prijenosnog računala bežično vezanog na kućni router.

Što je to ustvari geolocation?

Geolocation je, kratko rečeno, sustav koji pronalazi tvoju trenutnu lokaciju na planetu Zemlji sa koje se spajaš na internet. U principu se radi o nečemu što liči na Google Latitude, ali više nije ograničeno samo na mobilne telefone. Lociranje se vrši korištenjem dostupnih podataka kao što su IP adresa, podaci o spoju na bežičnu vezu, podacima o spoju mobilnog telefona na određeni komunikacijski toranj ili jednostavno korištenjem GPS hardvera ugrađenog unutar tvoga prijenosnog računala ili mobilnog telefona.

Preciznije, geolokacija podrazumijeva vezivanje dobivenih podataka (najčešće skup geografskih koordinata) sa nekim od postojećih kartografskih sustava (npr. Google Maps ili OSM) dajući sirovim podacima i vizualni prikaz omogućavajući na taj način lakšu obradu informacije od strane čovjeka. U kontekstu interneta i računalnih sustava, geolokacija se sprovodi povezivanjem geografske lokacije sa IP adresom, MAC adresom, RFID pristupom, lokacijom WiFi konekcije ili GPS koordinatama u tom trenu korištenog uređaja. Do sada je manje-više svima bio poznat sustav lociranja koji je u najboljem slučaju na osnovu tvoje IP adrese na Google karti prikazivao sjedište tvoga ISP-a ili te pozivao da u obližnjem gradu (većem internetskom čvorištu) pronađeš nekoga za druženje… tonight.

Zašto geolocation predstavlja potencijalnu opasnost?

Ono što se sada želi ugraditi kao standard unutar tvoga omiljenog internet preglednika jeste sustav koji će, ako ti to želiš i dozvoliš, omogućiti web servisu koji koristiš informaciju o mjestu sa kojega mu pristupaš. Kao trivijalni slučaj koji mi je prvi pao na pamet jeste spam sustav koji korisniku nekog od novijih pametnih mobitela automatski šalje pozivnice za posjet npr. tek otvorenom kafiću čim se ovaj nađe negdje u krugu od 50 metara od njega.

Testiranjem sam provjerio podršku za geolocation sustav dostupan unutar Mozilla Firefox i Google Chrome internet preglednika (stranice sadrže i upute za potpuno deaktiviranje geolocation sustava). Kako bi bio u potpunosti siguran u način funkcioniranja sustava testiranje sam proširio na više računala sa žičnom vezom spojenih preko različitih ISP-a. Žično spojena računala (bez aktivne wireless veze) su imuna, a zaključak je jednostavan: naše wireless mreže su skenirane i informacije o njima su pohranjene najvjerojatnije u neku od Google Location Services baza. Pomislio sam da promjenom SSID-a mreže mogu zbuniti lociranje, ali nisam testirao.  Sumnjam da bi to bilo od neke pomoći jer pregledom Google Gears geolocation koda (Google Gears pogoni geolocation unutar Chrome preglednika) doznajem kako su i MAC adrese pristupnih točaka također prikupljene. To dokazuje i primjer koda izvađen je iz datoteke wifi_data_provider_win32.cc.

static bool GetNetworkData(const WLAN_BSS_ENTRY &bss_entry,
                           AccessPointData *access_point_data) {
  // Currently we get only MAC address, signal strength and SSID.
  assert(access_point_data);
  access_point_data->mac_address = MacAddressAsString16(bss_entry.dot11Bssid);
  access_point_data->radio_signal_strength = bss_entry.lRssi;
  // bss_entry.dot11Ssid.ucSSID is not null-terminated.
  UTF8ToString16(reinterpret_cast<const char*>(bss_entry.dot11Ssid.ucSSID),
                 static_cast<ULONG>(bss_entry.dot11Ssid.uSSIDLength),
                 &access_point_data->ssid);
  // TODO(steveblock): Is it possible to get the following?
  //access_point_data->signal_to_noise
  //access_point_data->age
  //access_point_data->channel
  return true;
}

Zaključak

Možda pretjerujem; možda bi se netko i nasmijao ovom otkrivanju tople vode, ali ne treba biti previše maštovit kako bi se zaključilo na koji se sve način ovaj naoko zanimljiv i koristan sustav može iskoristiti i protiv tebe. Iako se proizvođači preglednika zaklinju u nebesa kako se sustav ne može aktivirati bez prethodne dozvole korisnika, svi mi znamo kako je samo pitanje dana kada će se to i dogoditi.

Papirić sa brojem

objavljeno: 22.10.2010.

Dobio sam papirić sa brojem

Tvrdi karton, zeleno obojen

U ovome redu nema preko reda

Inkrement je utvrđen

1+broj onih koji su iz reda

izašli…

The Copenhagen X Sessions

objavljeno: 08.09.2010.

Da je Shakespeare kojim slučajem živ danas vjerojatno bi se odlučio za haiku i Twitter. Pisao bi o truleži globalizma i cipelom gađao bivše premijere. Dansku bi na trenutak zaboravio ili možda ne nakon što bi pogledao što je niklo na godinama taloženom kompostu. Prošle godine sam čuo pjesmu Somersault grupe I Got You On Tape i zauvijek ostao zaljubljen u nju. Ove godine otkrivam The Copenhagen X Sessions i mom veselju nema kraja.



Fibonacci u zagrljaju pythona

objavljeno: 24.08.2010.

Najbolji način autoizolacije je rješavanje malenih matematičkih zadataka kroz programiranje. Zahvaljujući malenoj djeci koja su divljala po kupeu skoro čitavo sam se putovanje zabavljao baš sa tim stvarima.

a=0
b=1
for i in range (1, 100):

print (a)
c=a
a=a+b
b=c

Program izračunava brojeve Fibonaccijevog niza i demonstrira jednostavnost i čistoću koda koja je postignuta kroz python. Još zanimljivija rješenja mogu se naći na stranici LiteratePrograms koja sadrži brojne primjere i implementacije u drugim programskim jezicima. Tako se na njoj može naći i rekurzivna funkcija koja izračunava brojeve ovog slavnog niza.

def fib(n):

if n == 0:

return 0

elif n == 1:

return 1

else:

return fib(n-1) + fib(n-2)

LiteratePrograms

Belgrave Bladderest 2010

objavljeno: 24.08.2010.

Vesela ekspedicija se vratila sa još jednog putovanja. Ovaj put smo poput djeteta koje gura prste u utičnicu po drugi put, otišli i po treći put (dobro, neki tek po drugi put, neki po prvi, ali to mi ne može pokvariti ovu epsku analogiju). Čitavo putovanje bi se moglo sažeti u rečenicu koja sadrži kombinacije poput “bolni kukovi”, “tek mi je sedmo pivo”, “ljubičasti zec” ili “otkuda mačka u mom krevetu?”, ali to bi bilo krajnje neozbiljno i za to nema razloga jer ovo putovanje nije bilo prosijano kroz rupe pamćenja kao neka prijašnja. Svaki beogradski beerfest ima svoje prednosti i mane. Vašar je to i prilika za kreveljenje sa prijateljima. Pivo ne treba ni spominjati jer je broj onih koji ga ne vole zanemariv. Muzika nastoji ne biti sporedna stvar jer su se na bini izmijenjali neki zbilja sjajni muzičari. Među njima su prije svega grupa Kal iz Valjeva koja nas je nekako najviše razveselila. Problemi sa viškom vode u tijelu postajali su sve češći pa su se razmatrale razne opcije od kojih je neke prekinuo pendrek, a neke klizava ilovača. Sve u svemu, bilo je dobro i dogodiće se opet.

Omogućavanje navigacijskog menija nakon nadogradnje na WordPress 3.0

objavljeno: 18.08.2010.

Tako je. Danas je bio dan kada se i to trebalo napraviti. Stvar je vrlo jednostavna, a u isto vrijeme vrlo komplicirana. Google pomaže, ali i seciranje nove Twenty Ten teme.

Ukratko:

U functions.php datoteku negdje pred znak ?> uglavi:

if (function_exists(‘register_nav_menus’)) register_nav_menus( array(‘primary’ => __(‘Primary Navigation’, ‘imetvojeteme’),));

Drugi korak se sastoji u modifikaciji header.php datoteke i to dodavanjem slijedećih linija koda na mjesto ovisno o tome gdje želiš da ti se meni pojavi.

<div id=”access” role=”navigation”>
<?php wp_nav_menu( array( ‘container_class’ => ‘menu-header’, ‘theme_location’ => ‘primary’ ) ); ?>
</div>
Za kraj je potrebno dodati i štogod u style.css datoteku. Demonstracija primjera je navigacijski meni na ovoj stranici.

Misteriozni mehanički zvukovi

objavljeno: 15.08.2010.

Sve je prolazno. Sve trune i propada, troši se i kvari. Svaki put kad pritiskaš tipke na tipkovnici, ljušte se nevidljivi slojevi atoma, mašine počinju biti ćudljive. Staju negdje na granici živog i mrtvog i stvaraju atmosferu čudnog. Tako je i sa laptopima. Starost čini svoje i dogodi se da na najmanju promjenu kvantnih stanja u materijalu kontakta mikroprekidača CD/DVD-čitač/snimač krene proceduru otvaranja/zatvaranja. Razumljivo je da sa vremenom to postaje vrlo iritantno, a posebno u trenutku snimanja, kada ti izbaci na pola snimljen CD ili DVD medij. Za HP Compaq 6715s model rješenje se nalazi u podebljanju plastičnog dijela koji je u kontaktu sa dva mikroprekidača (smještena unutar uređaja) koji alarmiraju da je ladica zatvorena/otvorena. Podebljanje je izvršeno jednostavnim lijepljenjem izolir trake crvene boje u dva sloja kako bi bili potpuno sigurni u uspjeh (vidi sliku). Testiranje je izvršeno pokušajem snimanja na DVD medij što je u prethodnih nekoliko navrata bez modifikacije proglašeno čistim fijaskom. Bez sumnje je da bi predložena modifikacija bila moguća i na laptopima drugih proizvođača uzevši u obzir određene varijacije.

In memoriam

objavljeno: 07.08.2010.

Danica Lukić

baka, majka, sestra

1937. – 2010.