Urejanje slik terja svoj davek. In to v 24. colah! Tako zdaj moje namizje krasi Dellov U2410. Krasotec v vseh pogledih.
Moj stari mi je postal premajhen. In zato sem si privoščil večjega, ki mi ga bodo vsi zavidali.
Pa da ne bo pomote! Govorim o monitorju.
Štiri leta nazaj sem si omislil 20" wide monitor Dell UltraSharp 2005FPW. Za tiste čase in denar, ki sem ga moral odšteti, vrhunski monitor. O njem nimam slabe besede, niti ene! Pa vendar sem ga zamenjal.
Že pred časom sem gledal 24" orjake (?) in celo tiste, za katere sem vedel, da ne bodo nikoli končali pri meni doma (30"). Pa so bili vsi malce predragi za moje pojme. Vztrajnost pa je lepa čednost, pravijo. In jaz sem bil vztrajen.
Že pred letom 2005 je Dell ponujal vrhunske monitorje dostopne navadnim smrtnikom in to tradicijo še vedno nadaljuje. Ko sem kakšen teden nazaj videl, da U2410 stane borih 500 EUR, nisem dosti pomišljal. Takoj sem ga naročil pri Fikotu.
U2410 je impresiven monitor. Panel je H-IPS, z zornim kotom 178° in barvnim prostorom, ki presega AdobeRGB. Ima 2 DVI-D, 1 VGA, 1 HDMI in 1 DisplayPort vhode, 4x USB in SD čitalec kartic.
In zdaj k zanimivi temi: kalibraciji! Za fotografa nekalibriran monitor ni vreden počenega groša, kot pravijo. Zato je bila prva stvar, ko sem ga priklopil to, da sem ga kalibriral. Tega sem se lotil tako kot vedno: priklopil i1 DisplayOne kalibrator in izbral opcijo Advanced. Nato sem s pomočjo Custom barvne nastavitve spravil temperaturo na želenih 6500K. Sledilo je merjenje in na koncu je bil profil narejen, slika pa ... čudna. Ker mi ni bila povšeči, sem postopek ponovil. Tokrat sem posvetil precej več časa nastavitvi barvne temperature. Trudil sem se z vsemi opcijami, ki so na voljo (Gain, Offset, Hue in Saturation), da sem nekako prišel do 6500K, za katero se mi je zdelo, da bodo dale najlepšo sliko. Sledilo je merjenje in kontrola profila. ColorSync na meku je super zadeva, pa tudi na Windowsih ima Microsoft luštno orodje imenovano Microsoft Color Control Panel Applet. S ColorSyncom sem torej odprl novonastali profil in ga primerjal s starim (od 2005FPW). Sledilo je razočaranje! Že po izgledu zaslona po kalibraciji sem slutil, da je nekaj narobe (bilo je sicer rahlo bolje kot prvič, a vseeno). Ker je bilo že pozno, sem šel spat in celo noč sanjal o kalibriranju. Groza!
Naslednji dan sem iskal. In kdor išče, pravijo, tudi najde. Na TFT Central imajo zelo lep članek o U2410 in njegovih kvalitetah. Tudi tam so imeli težave s Custom kalibracijo! Torej, ubogal sem jih, izbral Standard barvne nastavitve na monitorju in v i1 Match 3 tokrat izbral Native whitepoint namesto običajnih 6500K ter spustil kalibracijo do konca. Neprimerljivo!
Resda je temperatura samo 6000K vendar pa je barvni prostor, ki ga monitor ponuja, izkoriščen do maksimuma. In slika? Fantastična. Tako živih barv sploh nisem navajen.
Za hec prilagam primerjavo AdobeRGB prostora (wireframe, bleda barva) s tistim, ki ga ponuja monitor.


Iz gole radovednosti, kako deluje PHP in kako se obnaša MySQL, sem se lotil predelave moje spletne strani iz CFML/MsSQL v PHP/MySQL. Naletel sem na nekaj zanimivih težav, ki pa sem jih uspešno obšel.
Dobra dva tedna nazaj sem začel razmišljati, kako bi svojo spletno stran predelal v PHP kodo. Pa ne, da bi bilo z ColdFusion kaj narobe (no, mogoče je to, da je plačljiv), temveč me je gnala gola radovednost, kako izgleda programiranje spletnih rešitev v PHP.
Poleg tega je bil dodatni moment tudi to, da je PHP že vgrajen v OS X in zanj ni potrebno plačevat nobene licence. In da ne bi bil polovičen, sem se odločil, da tudi bazo zamenjam iz MS SQL Express 2005 v MySQL v5.1.
Kot že rečeno, na OS X je PHP že naložen, aktiviramo ga zgolj z odkomentiranjem vrstice v /private/etc/apache2/httpd.conf konfiguracijski datoteki Apache web serverja:
LoadModule php5_module libexec/apache2/libphp5.so
Še največ težav je bilo sPHPjem na Windowsih. Na Win2k3 serverju sem imel težave, če je bil PHP poinstaliran v Program Files. Na enih mašinah je delalo, na enih ni. Tako, da sem na koncu pristal z instalacijo PHPja na rootu C: diska. Čudno.
V konfiguraciji PHP.INI sem spremenil naslednje:
output_buffering = On # oz. 8192, odvisno od mašine
default_charset = "utf-8"
date.timezone = CET
No, seveda je med razvojno in produkcijsko mašino še nekaj razlik, ki pa niso bistvene.
Če sem hotel na Macu uporabljat bazo, sem imel dve možnosti: Oracle Express ali pa MySQL. Seveda izbira ni bila težka.
Že pred časom sem se poigraval z MySQLom, ki pa takrat ni imel uporabnih grafičnih orodij za ad-hoc opravila. V verziji 5.1 je to čisto drugače! Poleg tega obstaja na Windows okolju tudi t.i. Migration utility, ki prenese podatke iz (skoraj) katerekoli druge podatkovne baze v MySQL. In dela skoraj popolno.
Težave sem imel samo pri pretvarjanju tabel, ki vsebujejo DEFAULT vrednost. Ne vem zakaj, ampak v nekaterih primerih se orodje odloči in uporabi naslednjo sintakso:
imepolja INT NULL DEFAULT (0)
za katero pa se izkaže, da ne deluje. Pravilno je naslednje:
imepolja INT NULL DEFAULT 0
Ko je bilo to poštimano in sem prenesel podatke iz MsSQL Express 2005 serverja v MySQL, sem naletel na prvi resni problem.
Ko sem izpisoval tekstualne podatke, ki so vsebovali šumnike (ščž...), se Š in š nikakor nista hotela izpisovat. Namesto njiju je bil ? (vprašaj).
Malo Googlanja mi je dalo naslednjo rešitev:
SET NAMES 'utf8' COLLATE 'utf8_slovenian_ci';
To je prvi ukaz, ki ga iz PHPja pošljemo MySQLu, da pravilno interpretira UTF-8 kodirane znake v bazi. Čudno, ker vsa MySQL orodja niso kazala težav. Očitno je to povezano zgolj s PHP in MySQL.
Ko sem obšel te prve težave, je sledilo prekodiranje CFML v PHP. Zamudno in dolgočasno.
Lahko rečem, da večjih težav nisem imel. Še največ mi je sivih las naredila ReReplace iz CFMLja, ki v stringu zamenja substring z uporabo regular expression. Sintaksa, ki jo uporablja CFML je namreč drugačna od PHPjeve. Pa še v PHPju so se odločili, da starejšo opustijo in uporabljajo zgolj Perl kompatibilno v prihodnjih verzijah PHPja.
Za dostop do baze podatkov sem našel super knjižnico EZSQL Justina Vincenta, ki poenostavi dostop do baze do maksimuma. Za konekcijo uporabim zgolj:
require_once('inc/ezsql_core.php');
require_once('inc/ezsql_mysql.php');
$db = new ezSQL_mysql('user','pass','DB','host');
in nato za branje podatkov:
$recordset = $db->get_results('SQL query');
Za zdaj lahko rečem, da sem prezentacijski del aplikacije uspešno prekodiral v PHP ostane mi še servisni/administrativni del. Tam pa je kode krepko več in me čaka še precej neprespanih noči.
UPDATE: Kogar zanima lahko pogleda novonastalo stran na /~blaz na serverju. Deluje na PHP in MySQL, medtem, ko trenutna stran še vedno teče na CFML/MsSQL.