<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>printf(&#34; SaltwaterC &#34;); &#187; Windows</title>
	<atom:link href="http://www.saltwaterc.net/category/windows/feed" rel="self" type="application/rss+xml" />
	<link>http://www.saltwaterc.net</link>
	<description>Developer blog</description>
	<lastBuildDate>Thu, 18 Feb 2010 12:43:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHP sub Windows, Zend Server, WinCache și un cluster FastCGI cu Process Manager</title>
		<link>http://www.saltwaterc.net/windows/php-sub-windows-zend-server-wincache-%c8%99i-un-cluster-fastcgi-cu-process-manager.html</link>
		<comments>http://www.saltwaterc.net/windows/php-sub-windows-zend-server-wincache-%c8%99i-un-cluster-fastcgi-cu-process-manager.html#comments</comments>
		<pubDate>Wed, 06 Jan 2010 22:11:45 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programare]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://saltwaterc.net/windows/php-sub-windows-zend-server-wincache-%c8%99i-un-cluster-fastcgi-cu-process-manager.html</guid>
		<description><![CDATA[La GeekMeet-ul din Octombrie de la Sibiu, Todi Pruteanu ne zicea printre altele despre WinCache &#8211; un accelerator de PHP dedicat platformei Windows. Nelămurirea mea legată de WinCache a fost următoarea: dacă Microsoft iși anunță colaborarea pentru a susține PHP sub Windows, atunci de ce nu au colaborat cu echipa APC (Alternative PHP Cache) din [...]]]></description>
			<content:encoded><![CDATA[<p>La GeekMeet-ul din Octombrie de la Sibiu, <a href="http://studentclub.ro/todi/" title="Deschis celor deschiși" target="_blank">Todi Pruteanu</a> ne zicea printre altele despre <a href="http://www.iis.net/expand/WinCacheForPHP" title="Windows Cache Extension for PHP" target="_blank">WinCache</a> &#8211; un accelerator de PHP dedicat platformei Windows. Nelămurirea mea legată de WinCache a fost următoarea: dacă Microsoft iși anunță colaborarea pentru a susține PHP sub Windows, atunci de ce nu au colaborat cu echipa <a href="http://pecl.php.net/package/APC" title="Alternative PHP Cache" target="_blank">APC</a> (Alternative PHP Cache) din moment ce acesta este proiectul de casă și va fi introdus în nucleul PHP începând cu versiunea 6? Întrebarea a rămas fără răspuns. Cu toate acestea, experimentând puțin, am găsit un loc pentru această extensie, deși am impresia că acceleratorul &#8216;closed source&#8217; de la Zend, <a href="http://files.zend.com/help/Zend-Server-Community-Edition/zendoptimizerplus.html" title="Zend Optimizer+" target="_blank">ZendOptimizer+</a> alăruri de <a href="http://files.zend.com/help/Zend-Server-Community-Edition/zenddatacache.html" title="Zend Data Cache" target="_blank">Zend Data Cache</a> ce oferă un API de caching compatibil cu APC poate să preia aceeași funcție. Poate pentru că echipa Zend a scris printre altele un modul de Apache, tot closed source, &#8216;Zend Enabler for Apache&#8217; ce oferă un FastCGI Process Manager pentru Windows suficient de deștept, dar care face o chestie: rularea de mai multe procese FastCGI care deservesc același server web. În plus, Zend Server oferă suport și pentru Microsoft IIS, deci backend-ul PHP nu este restricționat la Apache.</p>
<p>Paragraful anterior rezumă problema, dacă citim printre rânduri. Problema sub Windows este rularea mai multor procese FastCGI ce să servească pe același port, practic un cluster local cu &#8217;round robin load balance&#8217;. Tehnic vorbind &#8211; se poate. Dincolo de un simplu FastCGI wrapper cum este spawn-fcgi, proiect de casă al lighttpd, a apărut <a href="http://redmine.lighttpd.net/boards/2/topics/686" title="Spawn-FCGI Win32" target="_blank">o versiune nativă de Windows</a> pe forurile respective. De curiozitate am luat <a href="http://redmine.lighttpd.net/attachments/727/spawn-fcgi-win32.c" title="Spawn-FCGI Win32 Source" target="_blank">sursa</a>, am compilat-o cu MinGW (gcc -O2 -lws2_32 -o spawn-fcgi-win32.exe spawn-fcgi-win32.c) și am început să mă joc. Într-un mod așteptat, suportul pentru PHP FastCGI childs nu funcționează sub Windows, din motive tehnice. De fapt cercetând sursele PHP pentru cgi SAPI (php-src/sapi/cgi/cgi_main.c) partea cu child process este pusă între niște blocuri de preprocesare pentru compilator: #ifndef PHP_WIN32 &#8230; #endif ceea ce practic anulează FastCGI Process Manager-ul rudimentar implementat de către echipa de dezvoltare a PHP. Motivele sunt simple: spre deosebire de *NIX, sub Windows nu există conceptul de fork() al proceselor. Ba mai mult, sub *NIX există PHP-FPM(FastCGI Process Manager) ceea ce dă apă la moară și mai mult unei platforme non-Windows pentru PHP. Fanii nginx știu despre ce este vorba.</p>
<p>Vestea bună este faptul că acel spawn-fcgi-win32.exe știe să lanseze mai multe procese ce să servească pe același port TCP. Dă și idei despre cum ar trebui implementat un FastCGI Process Manager sub Windows pentru PHP. Ba mai mult, cum ziceam și în paragraful anterior,  acestea vor servi prin round robin load balance. Această arhitectură multiproces, deși nu se pretează stilului Windows ce este preponderent multithread, rezolvă problemele cu extensiile de PHP ce nu au implementat acel &#8216;thread safety&#8217;, iar clusterul poate să facă uz de o arhitectură SMP, fără a apela la threading.</p>
<p>Acum poate apare întrebarea: de ce mai multe procese FastCGI pentru a procesa scripturile PHP? În primul rând practica ne invață că un &#8217;segmentation fault&#8217; poate să apară oricând, iar în producție nu este faptul cel mai de dorit. Arhitecturile multiproces s-au dovedit a fi cele mai potrivite. Vezi cazul Google Chrome cu 1 proces per tab. În al doilea rând, un proces PHP ce servește cereri FastCGI are o limită de 500 de cereri după care acel proces se închide. Acea limită este codată în sursele PHP (tot în cgi_main.c). Acea limită se poate altera prin &#8216;environment variables&#8217;, și anume prin: PHP_FCGI_MAX_REQUESTS. Problema care se ivește: o limită mare poate duce la probleme de memorie ocupată abuziv (memory leaks). În concluzie, această limită este necesară. Prin design-ul serverului FastCGI al PHP, limita este obligatorie și finită deci este nevoie de un PHP FastCGI Process Manager. Apache are ceva extensii (mod_fastcgi si mod_fcgid, doar mod_fastcgi știe să folosească TCP binding) sau soluția Zend Server: Zend Enabler for Apache, IIS are propriul manager. Piața de web servere de Windows ce <em>întâmplător</em> știu de FastCGI nu se termină aici. Spre exemplu eu folosesc versiunea nativă a nginx sub Windows pentru simplul fapt că folosesc nginx și sub alte platforme. Am o târlă de motive pentru care nginx este trecut în preferințele subsemnatului ca web server excelent. Dar, în același timp, nu pot să mă iau după toate &#8216;tutorialele&#8217; de PHP FastCGI sub Windows unde &#8216;php-cgi.exe -b 127.0.0.1:9000&#8242; este suficient pentru a rula. Este suficient până la primul crash sau până la 500 de cereri. În plus, eu ca web developer poate că îmi doresc o soluție complet separată de web server.</p>
<p>Bun, acum am pus bazele ideei despre cum ar trebui făcut un Process Manager. Una dintre probleme este acel &#8216;race condition&#8217;: dacă toate procesele au aceeași viață, spre exemplu un cluster local de 4 cu limită implicită de 500, atunci acestea se vor termina în modul următor: la cererea 1997 &#8211; primul, la cererea 1998 &#8211; al doilea, la cererea 1999 &#8211; al treilea, la cererea 2000 &#8211; ultimul. Dacă process managerul nu se prinde de faptul că nu mai exista cineva care să proceseze ceva.php, atunci web serverul va servi clasica eroare 504 (Gateway Timeout) iar clienții conectați la webserver vor fi nemulțumiți. Acel php-cgi.exe nu oferă o metodă de identificare a faptului că rămâne fără cereri. Nu există în cod suport pentru IPC (Inter Process Communication) cu un manager. În concluzie, după bootstrap, un manager poate doar să monitorizeze clusterul. Nu susțin faptul că nu s-ar putea implementa. Ori, această monitorizare poate avea întârzieri, și pe un server încărcat aceasta nu este de dorit. În concluzie, printr-un algoritm, managerul ar putea mări artificial și temporar viața proceselor 2, 3 și 4 pentru a pune un interval de întârziere și a fi cineva acolo care să servească până monitorul se prinde de faptul că lipsește cineva. Altă idee ar mai fi modificarea pentru Windows a serverului FastCGI ca să suporte respawn (autospawn), înainte de a se închide, deși încă nu am investigat dacă această posibilitate este realizabilă din punct de vedere tehnic. Teoretic ar fi OK, cel puțin din câte mă prind citind despre varii funcții din Windows API. Ar rezolva problema existenței unui child care să servească, in concluzie managerul s-ar transforma în simplu monitor de procese după secvența de bootstrap unde lansează clusterul. Idei am, din păcate n-am mai pus mâna pe C decât ocazional în ultimii 5 ani. Din fericire mai pricep ce e prin codul altora <img src='http://www.saltwaterc.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Ziceam și pe <a href="http://twitter.com/SaltwaterC/status/7451025800" title="De ce nu există un PHP - FastCGI Process Manager sub Windows?" target="_blank">Twitter</a>: <span class="status-body"><span class="entry-content">De ce nu există un PHP &#8211; FastCGI Process Manager sub Windows? Pentru că nimeni nu și-a dat interesul să scrie unul. Posibilităti există!</span></span></p>
<p>Ceea ce ne aduce iarăși la WinCache. N-am început degeaba cu el. Unei platforme PHP îi stă bine și cu un opcode cache (PHP accelerator, whatever). Pe lângă PHP din Zend Server &#8211; ce vine cu multe jucării de la mama lui, Zend, cred că se poate pune un nginx. Problema acceleratorului și al Cache API-ului ar fi rezolvată. Ba ar fi compatibil codul cu un eventual APC folosit în producție, chiar dacă în teorie, având în vedere soluțiile multiple, se recomandă o bibliotecă abstractă cu drivere pentru varii extensii PHP. Bun, ar zice unii: dar APC ce are? Păi, ultima versiune pusă la dispoziție de unul dintre oamenii ce se ocupă de build-ul de PHP pentru Windows, precum și de dezvoltarea lui, a pus la dispoziție o <a href="http://downloads.php.net/pierre/" title="Windows PHP extensions" target="_blank">chestie compatibilă PHP 5.3.x</a> ce din păcate pusă în setup-ul multiproces expus mai devreme duce la crash. Practic din 4 procese, 3 crapă, unul rulează relativ stabil. Contravine ideii de multiproces. XCache deși este excelent, nu foloseste shared memory pentru data cache, deci practic acesta va fi împărțit într-un număr egal cu numărul de procese. Nu știu code cache-ul cum se comportă. WinCache știe doar code cache, dar face uz de shared memory și funcționează bine cu load balancer-ul. În concluzie, cel puțin pe termen scurt WinCache are un rol acolo. Mai mult, WinCache funcționează doar cu versiunile de PHP non-thread-safe, compilate cu Visual C++ 9, și teoretic cu IIS, practic Microsoft a mințit. Funcționează cu nginx fără probleme și de ce nu, cu alte servere.</p>
<p>Altă idee: un server web sub *NIX ar putea folosi un server FastCGI sub Windows. nginx poate să folosească backend-uri multiple, eventual cu load balance între mai multe mașini. Deși încă sunt de părere că PHP sub Windows cam suge datorită faptului că are multe lacune iar majoritatea bibliotecilor ce le integrează provin din *NIX, are un atu: suportul COM/.NET &#8211; ceea ce înseamnă că într-o arhitectură existentă se poate adăuga un server Windows cu PHP ce să poată beneficia de anumite SDK-uri comerciale ce se distribuie sub formă de COM.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/windows/php-sub-windows-zend-server-wincache-%c8%99i-un-cluster-fastcgi-cu-process-manager.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Actualizare de Virtualbox. Acum ce? Management de procese? Reboot!</title>
		<link>http://www.saltwaterc.net/windows/actualizare-de-virtualbox-acum-ce-management-de-procese-reboot.html</link>
		<comments>http://www.saltwaterc.net/windows/actualizare-de-virtualbox-acum-ce-management-de-procese-reboot.html#comments</comments>
		<pubDate>Sat, 28 Nov 2009 10:53:44 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Virtualizare]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://saltwaterc.net/windows/actualizare-de-virtualbox-acum-ce-management-de-procese-reboot.html</guid>
		<description><![CDATA[Băieții aceștia faini de la Sun Microsystems au &#8216;ghiara&#8217; pe VirtualBox de la băieții de la Innotek. Vremuri istorice tulburi cu un produs mediocru. Între timp Sun-ul a băgat camionul de dolari în proiect și a început să se distingă din mulțime printr-un backend foarte puternic. Pe subsemnatul l-a convins să renunțe la VMware Server [...]]]></description>
			<content:encoded><![CDATA[<p>Băieții aceștia faini de la Sun Microsystems au &#8216;ghiara&#8217; pe VirtualBox de la băieții de la Innotek. Vremuri istorice tulburi cu un produs mediocru. Între timp Sun-ul a băgat camionul de dolari în proiect și a început să se distingă din mulțime printr-un backend foarte puternic. Pe subsemnatul l-a convins să renunțe la VMware Server pentru acele &#8217;server consolidation deployment&#8217; ce mai apărea prin rețelele locale pe unde operez. Tot istoric vorbind, pentru Windows se distribuiau două pachete, unul pentru x86 și unul pentru x86-64. În prezent se distribuie unul singur ce se instalează în funcție de contextul platformei.</p>
<p>Bun. La partea cu instalarea îmi doream să ajung. Mai bine zis la partea cu actualizarea. De regulă pe un Ubuntu Server ce mai rulează servicii mici/medii VirtualBox are bunul simț să ruleze în background ca daemon printr-un simplu init script. În concluzie actualizările le fac atunci când îmi mai aduc aminte să deschid interfața grafică. Sub Windows în schimb este o jucărie unde mai testez ultimele apariții în domeniul OS. Dar aici mă lovesc suficient de des de acea fereastră ce mă anunță faptul că a apărut o nouă versiune. Click &#8211; download  &#8211; next, next, next &#8230; gata. În teorie era gata. În practică 3.0.12, adică ultima versiune, refuză să adauge orice fel de HDD virtual nou și am o mică bănuială despre imposibilitatea de a adăuga noi mașini virtuale.</p>
<p>Mă apuc să lucrez în calculator să văd ce se întâmplă (doctore). Cretinătatea aceea de installer nu a închis VBoxSVC înainte de instalare. Adică acel serviciu ad-hoc din arhitectura VirtualBox ce se ocupă de mașinile virtuale atâta timp cât rulează cel puțin una. În mod normal stă închis acel proces. Ridicolul merge mai departe. Acel proces, VBoxSVC dă un &#8216;lock&#8217; exclusiv pe fișierele de configurare astfel încât să nu apară chestia aceea numită &#8216;race condition&#8217; în geek language. Iar acel proces nu mai vrea să moară. Task Manager-ul e inutil ca de obicei la omorât procese încăpățânate. Am scos artileria grea: <a href="http://diamondcs.com.au/advancedseries/apt.php" title="Advanced Process Termination" target="_blank">Advanced Process Termination</a> (APT). Pe lângă o duzină de metode de kill, știe două metode de kernel kill și încă două de crash kill. Kernel kill pe Windows 7 x64 nu are suport. Nu mi-am spart capul cu hack-ul de OS. Din păcate metodele din user mode au dat greș. Windows încă e copil mic și udă patul atunci când vine vorba de procese încăpățânate. Sistemele UNIX-like (ex: Linux, FreeBSD) rămân în situația penibilă de mai sus atunci când un proces rămâne blocat în &#8216;<a href="http://en.wikipedia.org/wiki/Uninterruptible_sleep" title="IO wait" target="_blank">IO wait state</a> &amp; friends&#8217;. Soluția este evidentă: reboot. Dar m-am cam săturat să rămân cu procese blocate pentru ca Windows e rebut la management-ul lor din &#8216;user mode&#8217;. Iar VirtualBox e rebut la actualizare și nu își știe închide serviciul înainte de un nou &#8216;deploy&#8217;. În mod curios, procesul blocat nu apare în APT. Dar APT are o jucărie numită &#8216;Custom PID&#8217; pentru a da kill după kill.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/windows/actualizare-de-virtualbox-acum-ce-management-de-procese-reboot.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalarea Apache 2.2 + PHP 5.2 + MySQL 5.1 sub Windows</title>
		<link>http://www.saltwaterc.net/windows/instalarea-apache-22-php-52-mysql-51-sub-windows.html</link>
		<comments>http://www.saltwaterc.net/windows/instalarea-apache-22-php-52-mysql-51-sub-windows.html#comments</comments>
		<pubDate>Wed, 29 Apr 2009 19:24:00 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[Programare]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://saltwaterc.net/tech/instalarea-apache-22-php-52-mysql-51-sub-windows.html</guid>
		<description><![CDATA[Ultima actualizare: 19 Aprilie 2009
Introducere
Desi exista o droaie de pachete de astea ce le contin pe toate si au o gramada de arome, pe zi ce trece ajung la concluzia ca un developer serios nu se incurca cu mizerii si isi seteaza singur mediul de dezvoltare a aplicatiilor web. Ma rog, nu toate sunt mizerii, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Ultima actualizare:</strong> 19 Aprilie 2009</p>
<h2>Introducere</h2>
<p>Desi exista o droaie de pachete de astea ce le contin pe toate si au o gramada de arome, pe zi ce trece ajung la concluzia ca un developer serios nu se incurca cu mizerii si isi seteaza singur mediul de dezvoltare a aplicatiilor web. Ma rog, nu toate sunt mizerii, dar majoritatea fie sunt prea stufoase, fie inutile sau inutilizabile fara lucru manual &#8211; deci mai bine faci lucru manual din start. Asta in cazul in care nu vrei sa ramai o mimoza pentru tot restul vietii care transpira cand vine vorba sa adauge module noi mediului respectiv, sau pur si simplu sa se blocheze in parametrii de configurare relativ simpli. Nu sustin faptul ca este usor. De altfel patrunderea in tainele configurarii fine necesita timp si multa documentatie citita. Dar macar vreo cateva chestii de baza ar trebui cunoscute. Iar chestiile de baza pornesc cu instalarea.</p>
<p>Propozitie cheie: daca iti este lene sa iti configurezi acest mediu (lucru ce nu se intampla zilnic, iar experienta acumulata este benefica) atunci oare nu iti este lene sa te apuci sa programezi catusi de cat mai mult decat aplicatii gen &#8220;hello world&#8221;? Pentru a implementa solutii de o complexitate relativ mare ce necesita varii module este nevoie de mult mai multa munca pentru documentare decat pentru a configura un mediu de dezvoltare. In plus, din moment ce nu iti cunosti bine mediul in care ruleaza aplicatiile tale, cum poti avea nesimtirea sa sustii ca ai idee foarte bine ce face propria aplicatie? De unde vei sti ca va functiona corect si este portabila pe alta masina? Intrebarile acestea sunt multe, si nu, nu am de gand sa le transform in intrebari retorice. Raspunsurile sunt mai mult sau mai putin evidente.</p>
<p>O sa structurez acest articol in cativa pasi destul de simplu de urmat. Este ca in cazul in care se construieste o casa: se pleaca de la fundatie, si se termina treaba cu acoperisul. Deci ordinea va respecta logica si bunul simt, cu notiunea ca desi o sa incep cu <strong>Apache</strong>, <strong>MySQL </strong>deasemenea poate fi primul pas deoarece baza de date si serverul web nu sunt interdependente. <strong>PHP </strong>se integreaza cu Apache, deci regulile anterior mentionate indica faptul ca va fi instalat dupa el &#8211; aceasta pentru a nu fi nevoit sa faci instalarea PHP de doua ori.<span id="more-533"></span></p>
<h2>Pasul 1: Instalarea Apache 2.2</h2>
<p>In principiu primul pas ar fi verificarea faptului ca nici un alt proces nu asculta pe portul 80 ce in mod uzual este folosit de catre Apache. In mare chestii precum Skype ar trebui inchise inainte de instalare, pentru ca Skype are prostul obicei de a asculta pe porturile tipice HTTP si HTTPS (adica 80 si 443) printre altele. Pentru o solutie generalizata, utilitarul netstat ar trebui sa ofere solutia: Start &gt; Run &gt; cmd.exe iar in chestia aia neagra aka terminal (chestie pe care multi nu o pricep, in concluzie o urasc) se ruleaza urmatoarea linie:</p>
<p><em>netstat -a -p TCP</em></p>
<p>ce va returna toate porturile TCP ce sunt active. Daca apare o chestie ce se termina cu :80 in coloana &#8220;Local Address&#8221; este necesara oprirea aplicatiei ce ocupa acel port. Exemplu de situatie in care instalarea <u><em><strong>nu</strong></em></u> va fi cu succes:</p>
<p align="center"> <a href="http://saltwaterc.net/wp-content/uploads/netstat-tcp-image.png" title="netstat si porturile TCP"><img src="http://saltwaterc.net/wp-content/uploads/netstat-tcp-image.png" alt="netstat si porturile TCP" /></a></p>
<p>Desi in trecut installer-ul oferit de Apache Foundation era destul de trist, sau buildul avea lacune (cea mai notabila: absenta suportului pentru SSL &#8211; deci nu se puteau folosi conexiuni criptate prin HTTPS), in prezent situatia s-a schimbat in bine. Nu mai este nevoie de build-uri 3rd party cu tutoriale complicate de instalare. Acest tutorial nu se vrea unul complicat, de unde si prezenta pozelor. <strong>Click pe ele</strong> pentru a le vedea mai mari. Desigur, anumite categorii de cititori se auto-exclud prin definitie. Desi suportul pentru criptare nu este obligatoriu pentru dezvoltare, este recomandat a-l avea la indemana in eventualitatea de a testa aplicatia cum se comporta in acest context &#8211; de altfel foarte recomandat daca se compun cai absolute din aplicatia PHP ce depind de context HTTP/HTTPS.</p>
<p>Pagina proiectului este: <a href="http://httpd.apache.org/download.cgi" title="Apache HTTP Server" target="_blank">http://httpd.apache.org/download.cgi </a></p>
<p>Ultima versiune la ora actuala este 2.2.11, deci pe parcursul acestui tutorial voi folosi aceasta versiune. De <a href="http://apache.iasi.roedu.net/httpd/binaries/win32/apache_2.2.11-win32-x86-openssl-0.9.8i.msi" title="Apache 2.2.11 - Windows + OpenSSL 0.9.8i" target="_blank">aici</a> se poate lua aceasta versiune folosind un mirror de Romania. Daca serverul este cazut, sau fisierul devine indisponibil, se poate oricand cauta o alternativa urmarind link-ul dat mai sus. In principiu dupa ce download-ul e gata, se executa pachetul ce tocmai a poposit pe disk:</p>
<p><em>apache_2.2.11-win32-x86-openssl-0.9.8i.msi </em></p>
<p>De aici instalarea e relativ banala pana la configurarea <strong>Server Information</strong>:</p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/apache2-server-information-image.png" title="Apache 2 Server Information"><img src="http://saltwaterc.net/wp-content/uploads/apache2-server-information-image.png" alt="Apache 2 Server Information" /></a></p>
<p>In principiu pentru o masina de dezvoltare aceste chestii nu sunt relevante, deci poti lasa datele implicite. Pentru un server &#8220;de productie&#8221; in primul rand n-as recomanda Windows pentru Apache2+PHP si in al doilea rand nu cred ca acesta este locul potrivit pentru a trata acest subiect. Deci ma limitez la dezvoltatori. Bifa pentru &#8220;All Users&#8221; este puternic recomandata, precum si instalarea ca serviciu. In cazul instalarii ca serviciu, serverul va porni impreuna cu sistemul de operare.</p>
<p>La urmatorul pas, <strong>Setup Type</strong>, se alege &#8220;Custom&#8221;. Installer-ul vrea sa faca treaba pentru tine, dar asta nu inseamna ca o va face neaparat asa cum trebuie, sau cum e recomandat. Mai departe, optiunile din lista de chestii ce se pot instala pot fi lasate asa cum sunt. Documentatia este optionala deoarece se poate gasi online. Eu o instalez pentru ca spre deosebire de PHP si MySQL, nu se distribuie o arhiva CHM pe site-ul oficial cu aceasta documentatie. Restul chestiilor sunt recomandate. &#8220;Build Headers and Libraries&#8221; este necesar doar celor ce fac sporturi extreme, deci nu este cazul de fata.</p>
<p>Aici mai este totusi o chestie de facut. Instalarea acestei stive WAMPP (Windows Apache MySQ PHP Platform) &#8211; pun sub acest nume pentru a nu se confunda cu proiectul WAMP ce le impacheteaza pe toate, se poate face imprastiat pe disk, dar ca recomandari acestea ar trebui sa fie tinute in acelasi director, caile de pe disk sa nu contina spatii si sa fie cat mai scurte. In concluzie click pe &#8220;Apache HTTP Server 2.2.11&#8243;, iar in partea stanga jos e un buton &#8220;Change&#8221;:</p>
<p align="center"> <a href="http://saltwaterc.net/wp-content/uploads/apache2-custom-setup-image.png" title="Apache 2 Custom Setup"><img src="http://saltwaterc.net/wp-content/uploads/apache2-custom-setup-image.png" alt="Apache 2 Custom Setup" /></a></p>
<p>Calea propusa de catre subsemnatul este:</p>
<p><em>C:\wampp\apache</em></p>
<p>Nu este obligatorie, este doar o recomandare. Dar folosind aceasta denumire, este suficient de clar ce fel de stiva este instalata.</p>
<p align="center"> <a href="http://saltwaterc.net/wp-content/uploads/apache2-custom-setup-path-image.png" title="Apache 2 Custom Setup - Calea catre WAMPP"><img src="http://saltwaterc.net/wp-content/uploads/apache2-custom-setup-path-image.png" alt="Apache 2 Custom Setup - Calea catre WAMPP" /></a></p>
<p>Se termina restul instalarii ce practic se rezuma la next, install, etc. La sfarsit ar trebui ca serviciul sa porneasca automat, iar jos langa ceas sa fie un panel de control pentru Apache 2.2. Pentru a valida instalarea, cu Web browserul preferat se viziteaza adresa: <a href="http://localhost" title="localhost" target="_blank" rel="noindex,nofollow">http://localhost/</a> iar daca totul e OK, ar trebui sa apara mesajul &#8220;It Works!&#8221;. Cam atat de la Apache.</p>
<h2>Pasul 2: Instalarea PHP 5.2</h2>
<p>Trecem la PHP 5.2.6 &#8211; ramura stabila 5.2 a PHP. Nu am ales o versiune mai noua (5.2.8 sau 5.2.9-2) pentru simplul motiv ca PHP 5.2.6 are un setup complet, in timp ce versiunile mai noi au o mana de module lipsa. Este drept ca se pot pune cele de la 5.2.6, dar este o munca ce nu va fi pe gustul cuiva ce acum incepe incet-incet sa puna gramada un mediu de dezvoltare. In plus, intre aceste versiuni nu au fost modificari majore. Ca o mica paranteza, PHP 5.3.0 va aduce modificari majore, dar momentan este disponibil doar ca versiune de test. De altfel, idea este sa avem un suport cat mai larg pentru dezvoltarea unei aplicatii. Exceptand cazurile in care nu exista alternative, limitarea la tehnologii vechi nu este de dorit. Oricum, in cazul branch-ului 5.2, de anul trecut si pana in prezent, nu s-a miscat mare lucru. S-a centrat atentia pe 5.3 si pe 6. Deci alegerea 5.2.6 este oarecum justificata.</p>
<p>Pentru ca versiunea este totusi una mai veche, link-ul de download este <a href="http://museum.php.net/php5/php-5.2.6-win32-installer.msi" title="PHP 5.2.6">acesta</a>. Dupa ce ati obtinut fisierul, executata-l. Da, este vorba despre:</p>
<p><em>php-5.2.6-win32-installer.msi</em></p>
<p>In continuare, treaba va merge ca pentru majoritatea installer-elor de Windows. Doar la Destination Folder este nevoie de o mica modificare:</p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/php5-destination-folder-image.png" title="PHP 5 Destination Folder"><img src="http://saltwaterc.net/wp-content/uploads/php5-destination-folder-image.png" alt="PHP 5 Destination Folder" /></a></p>
<p>si anume faptul ca am folosit calea propusa/recomandata:</p>
<p><em>C:\wampp\php</em></p>
<p>pentru a pastra o structura consistenta.</p>
<p>Urmatorul pas este important, nu pentru ca vreau sa ii acord eu importanta, ci pentru ca aici se va alege optiunea de configurare ce va integra PHP cu serverul HTTP. Se alege &#8220;Apache 2.2.x Module&#8221; nu pentru ca spun eu ci pentru faptul ca versiunea de Apache instalata in acest tutorial este 2.2 (d&#8217;oh) si pentru ca alte metode de integrare cu Apache fie sunt lente, fie sunt ceva mai dificile, deci vor fi prezentate intr-un articol viitor.</p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/php5-web-server-setup-image.png" title="PHP 5 Web Server Setup"><img src="http://saltwaterc.net/wp-content/uploads/php5-web-server-setup-image.png" alt="PHP 5 Web Server Setup" /></a></p>
<p>Pasul urmator presupune oferirea directorului unde se afla fisierul de configurare al Apache 2.2. Installer-ul este suficient de destept astfel incat sa stie sa puna ceea ce trebuie acolo, atata timp cat nu sunt probleme intre scaun si tastatura. Am ales calea precum zice imaginea urmatoare:</p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/php5-apache-configuration-directory-image.png" title="PHP 5 Apache Configuration Directory"><img src="http://saltwaterc.net/wp-content/uploads/php5-apache-configuration-directory-image.png" alt="PHP 5 Apache Configuration Directory" /></a></p>
<p>si anume:</p>
<p><em>C:\wampp\apache\conf\</em></p>
<p>ce respecta conventia anterior facuta.</p>
<p>Pasul urmator presupune alegerea componentelor PHP ce vor fi instalate. Ceea ce propune installer-ul este un setup minim, destul de inutil de altfel. Pentru a beneficia de intreaga putere a PHP este nevoie si de extensiile sale. Astfel, in sectiunea &#8220;Program&#8221; aleg si &#8220;Script Executable&#8221;, dar fara inregistrarea extensiei .php pentru a fi executata de catre PHP pe motiv ca atunci cand dau dublu click pe un .php prefer sa se deschida scriptul intr-un editor, in loc sa il ruleze. Oricum, daca este parte a unei aplicatii Web, atunci rularea de catre interpretor va fi inutila din start.</p>
<p>Sectiunea &#8220;Extensions&#8221; este partea stringenta. De altfel motivul pentru care am ales PHP 5.2.6. Le poti instala pe toate, dar se va incarca mediul in mod inutil. Alta solutie ar fi sa fie incarcate pe masura ce un proiect avanseaza, dar refacerea configuratiei aduce ceva batai de cap si necesita o cunoastere destul de buna a extensiilor. O lista recomandata de catre subsemnatul include: bzip2, bz2_filter, Crack, Curl, domxml, EXIF, Fileinfo, GD2, Gettext, GMP, pecl_http, mcrypt_filter, Multi-Byte String, Mcrypt, Ming, MySQL, MySQLi, OpenSSL, PDO &#8211; iar din sectiunea PDO &#8211; MySQL si SQLite, mai departe, phar, rar, Sockets, Standard PHP Library &#8211; Types Addon, SQLite, ssh2, Tidy, timezonedb, XML-RPC, XSL, zip, zip_filter. Lista este departe de a fi completa si inafara de MySQL si SQLite, alte engine-uri pentru baze de date au fost lasate pe afara, desi exista suport pentru ele. Deasemenea am lasat pe afara extensiile ce ofera suport pentru diverse protocoale, printre care si cele tipice pentru e-mail. La nevoie se pot include. Multe dintre ele se prea poate sa fie inutile pentru proiecte relativ simple.</p>
<p>Sectiunea &#8220;Extras&#8221; contine doar documentatie, dar nu isi are rostul. Online se gaseste documentatie actualizata, fie direct pe site, fie disponibila ca download. Deci o sa o las ca &#8220;debifata&#8221;.</p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/php5-chose-install-items-image.png" title="PHP 5 Chose Install Items"><img src="http://saltwaterc.net/wp-content/uploads/php5-chose-install-items-image.png" alt="PHP 5 Chose Install Items" /></a></p>
<p>Dupa terminarea instalarii, o sa ai un Apache 2.2 integrat cu PHP 5.2. Mai este nevoie totusi de o modificare:</p>
<p><em>C:\wampp\apache\conf\httpd.conf</em></p>
<p>contine optiunile de configurare ale Apache. Ce n-a facut installer-ul PHP si trebuie corectat de mana este activarea index.php ca fisier de index. Se cauta urmatorul bloc de configurare:</p>
<p><em>&lt;IfModule dir_module&gt;<br />
DirectoryIndex index.html<br />
&lt;/IfModule&gt;</em></p>
<p>Acesta se schimba in</p>
<p><em>&lt;IfModule dir_module&gt;<br />
DirectoryIndex index.php index.html index.htm<br />
&lt;/IfModule&gt;</em></p>
<p>Am adaugat din burta index.htm pentru ca unii folosesc si aceasta extensie pentru fisiere HTML. Restart la Apache. Daca ai lasat optiunile implicite, atunci ai langa ceas acel Apache Monitor ce are butoane pentru Start, Stop, Restart &#8211; deci nu este nevoie sa se sape prin managerul de servicii al Windows.</p>
<p><strong>Actualizare:</strong> NU apela la butonul <strong>Restart</strong> dupa instalarea PHP! Am constatat cu stupoare ca aplicand tutorialul meu, desi C:\wampp\php e in %PATH%, doar <strong>Stop</strong>+<strong>Restart</strong> il aduc pe calea cea buna. Detalii despre %PATH% mai jos.</p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/apache2-service-monitor-restart-image.png" title="Apache 2 Service Monitor Restart"><img src="http://saltwaterc.net/wp-content/uploads/apache2-service-monitor-restart-image.png" alt="Apache 2 Service Monitor Restart" /></a></p>
<p>In directorul:</p>
<p><em>C:\wampp\apache\htdocs</em></p>
<p>se gaseste directory root-ul aplicatiilor Web ce vor fi servite de catre configuratie. Pentru teste, index.html se va redenumi in index.php iar continutul lui va fi schimbat in:</p>
<p><em>&lt;?php</em></p>
<p><em>phpinfo();</em></p>
<p>dupa care se va accesa din nou adresa: <a href="http://localhost/" title="localhost" target="_blank" rel="noindex,nofollow">http://localhost/</a>. Ar trebui sa apara informatiile despre PHP si mediul in care ruleaza + informatii despre extensii si configurare.</p>
<p>Ponturi:</p>
<ol>
<li>pentru reconfigurarea PHP este suficienta rularea installer-ului din nou, urmata de apelarea cu incredere la butonul &#8220;Change&#8221;. Este recomandat ca extensiile instalate de catre installer sa nu fie scoase din setup direct din fisierul de configurare, desi aceasta este posibil. Reconfigurarea este posibila si fara installer, dar nu este de dorit pentru toata lumea.</li>
<li>daca apari erori la pornirea Apache (<em>C:\wampp\apache\logs\error.log</em> &#8211; contine log-ul de erori) atunci trebuie verificat daca installer-ul PHP si-a pus propria cale in %PATH%. Pentru mai multe detalii apelati la: <a href="http://en.wikipedia.org/wiki/Environment_variable" title="Environment Variable" target="_blank">Environment Variable</a>. %PATH% face parte din aceasta categorie si se poate modifica:</li>
</ol>
<ul>
<li>Windows XP: Properties la My Computer -&gt; Advanced -&gt; Environment Variables</li>
<li>Windows Vista/Windows 7: Properties la My Computer, e un link &#8220;Change Settings&#8221; pe acolo, ce va deschide un panou asemanator cu cel din Windows XP. De aici procedura e identica, si anume</li>
</ul>
<blockquote><p> In sectiunea System Variables, exista variabila cu numele Path. Se verifica daca contine calea C:\wampp\php. Daca nu, se adauga acolo. Separatorul de astfel de cai este &#8220;;&#8221; (fara ghilimele!!!) deci atentie la sintaxa.</p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/windows-environment-variables-path-image.png" title="Windows Environment Variables"><img src="http://saltwaterc.net/wp-content/uploads/windows-environment-variables-path-image.png" alt="Windows Environment Variables" /></a></p>
<p><strong>Note</strong>:</p>
<p>(1) Nu constituie erori de pornire acele &#8220;PHP Notice&#8221;. Erorile sunt explicite si arata faptul ca anumite biblioteci dinamice nu se pot incarca pentru ca Apache nu le gaseste. Acele biblioteci (dll-uri) ce nu sunt gasite de catre Apache se pot copia intr-un director de sistem gen <em>C:\Windows</em> sau <em>C:\Windows\system32</em> dar aceasta nu este o optiune prea desteapta. Deasemenea se pot copia si in directorul bin al Apache, dar din nou nu este o optiune desteapta. In fond si la urma urmei exista doua categorii de utilizatori de Windows: cei ce il utilizeaza corect &#8211; desi este mai dificil, scuteste utilizatorul de multe probleme clasice pe termen indelungat &#8211; si utilizatorii ce il fac praf suficient de repede datorita administrarii extrem de proaste. Nu exista cale de mijloc.</p>
<p>(2) In cazul Windows XP o sa apara &#8220;Warnings&#8221; in legatura cu bibliotecile suplimentare necesare anumitor extensii (gen libmysql.dll pentru MySQL si MySQLi). Solutii: a) Reboot la OS dupa instalarea Apache+PHP. Sub anumite versiuni de Windows (exemplu: XP, la Vista nu am remarcat datorita problemei descrise mai jos) Apache nu baga in seama un %PATH% modificat &#8211; deci este nevoie de un reboot pentru a-l aduce pe calea cea buna. Avand in vedere faptul ca anumite chestii din PHP depind de un environment variable, chestia de mai sus este bine sa fie retinuta. b) copierea dll-urilor cu pricina ce se gasesc in directorul PHP si sunt cerute de catre extensii din directorul bin al Apache. Desi, aceasta optiune este una destul de trista. As zice din barda.</p></blockquote>
<p><strong>Windows Vista:</strong> intamplator astazi m-am lovit de instalarea stivei prezentare in acest articol sub Windows Vista. Din moment ce subsemnatul si Vista suntem certati (pe buna dreptate) detaliul de mai sus mi-a scapat. Pana in prezent, integrarea de fata functioneaza doar sub Windows XP si Windows 7 (Beta si RC). Windows Vista are nevoie de un parametru suplimentar atunci cand se configureaza integrarea dintre Apache 2.2 si PHP 5.2, in rest codul PHP apare in browser in loc sa fie interpretat intr-un mod foarte retard. Problema se mai intalneste si la unele pachete de acestea all-in-one. Sectiunea aceasta ce in mod standard se gaseste la sfarsitul fisierului httpd.conf dupa rularea installer-ului PHP:</p>
<p><em>#BEGIN PHP INSTALLER EDITS &#8211; REMOVE ONLY ON UNINSTALL<br />
PHPIniDir &#8220;C:/wampp/php/&#8221;<br />
LoadModule php5_module &#8220;C:/wampp/php/php5apache2_2.dll&#8221;<br />
#END PHP INSTALLER EDITS &#8211; REMOVE ONLY ON UNINSTALL </em></p>
<p>trebuie sa mai contina inca o chestie, deci sa arate astfel pentru Windows Vista:</p>
<p><em>#BEGIN PHP INSTALLER EDITS &#8211; REMOVE ONLY ON UNINSTALL<br />
PHPIniDir &#8220;C:/wampp/php/&#8221;<br />
LoadModule php5_module &#8220;C:/wampp/php/php5apache2_2.dll&#8221;<br />
<strong>AddType application/x-httpd-php .php</strong><br />
#END PHP INSTALLER EDITS &#8211; REMOVE ONLY ON UNINSTALL</em></p>
<h2>Pasul 3: Instalarea MySQL 5.1</h2>
<p>In principiu inainte de instalare ar trebui verificat daca nu ruleaza nimic pe portul 3306, adica portul implicit pe care asculta serverul MySQL. Daca nu mai exista o alta instalare de MySQL, atunci slabe sanse. Pentru identificarea precisa, se va folosi metoda prezentata la instalarea Apache.</p>
<p>MySQL 5.1.34 este ultima versiune stabila disponibila la momentul redactarii acestui articol, deci il vom folosi pe acesta. Desi mai exista MySQL 5.0 ca branch stabil, folosit destul de mult in productie (de altfel mai exista si 4.1 prin productie, dar il urasc cu pasiune din motive obiective) totusi am mers pe ultima chestie lansata. Are vreo cateva chestii noi ce in buna parte tin de viteza si de extensibilitate.</p>
<p>Spre deosebire de Apache 2.2 si PHP 5.2, pe pagina oficiala a MySQL exista atat build-uri de 32-bit, cat si build-uri de 64-bit. Primele doua se distribuie oficial doar ca binare de 32-bit. In principiu se recomanda build-ul ce se potriveste cel mai bine platformei, 64-bit in cazul subsemnatului, cu notiunea ca pot apela si la unul de 32-bit. Link-ul de download pentru build-ul pe 32 este <a href="http://dev.mysql.com/downloads/mysql/5.1.html#win32" title="MySQL 5.1 32-bit" target="_blank">acesta</a>, in timp ce pentru cel de 64 este <a href="http://dev.mysql.com/downloads/mysql/5.1.html#winx64" title="MySQL 5.1 64-bit" target="_blank">acesta</a>. De acolo se alege &#8220;Windows MSI Installer&#8221; iar din dreapta link-ul de &#8220;Download&#8221;. In cazul in care mirror-ul ales automat pentru &#8220;Download&#8221;este invalid sau are probleme, se poate alege si &#8220;Pick a mirror&#8221; de unde se alege unul mai apropiat de casa.</p>
<p>Eu am plecat la drum cu:</p>
<p><em>mysql-5.1.34-winx64.msi</em></p>
<p>iar utilizatorii unui Windows 32-bit este obligatoriu sa plece la drum cu:</p>
<p><em>mysql-5.1.34-win32.msi</em></p>
<p>In rest, instalarea este relativ identica.</p>
<p>In pasul in care installer-ul intreaba de  &#8220;Setup Type&#8221;, se alege &#8220;Custom&#8221;. Se va debifa documentatia deoarece este disponibila online. Optional se poate lasa. Eu prefer sa downloadez ultimele arhive cu documentatie ce sunt la zi. In rest, nu mai este nevoie de nimic deoarece optiunile sunt multumitoare. Ce mai trebuie schimbata este calea de instalare, ce va folosi modelul prezentat mai sus in cazul Apache si PHP.</p>
<p><strong>Later Edit:</strong> mi-a scapat un mic aspect ce nu l-am mentionat data trecuta, si anume faptul ca serverul se poate instala intr-o locatie iar data storage-ul in alta. Acestea sunt imaginile actualizate:</p>
<p align="center"> <a href="http://saltwaterc.net/wp-content/uploads/mysql5-server-install-path-image.png" title="MySQL 5 Server Path"><img src="http://saltwaterc.net/wp-content/uploads/mysql5-server-install-path-image.png" alt="MySQL 5 Server Path" /></a></p>
<p align="center"> <a href="http://saltwaterc.net/wp-content/uploads/mysql5-server-datafiles-path-image.png" title="MySQL 5 Datafiles Path"><img src="http://saltwaterc.net/wp-content/uploads/mysql5-server-datafiles-path-image.png" alt="MySQL 5 Datafiles Path" /></a></p>
<p align="center"> <a href="http://saltwaterc.net/wp-content/uploads/mysql5-server-install-path-image1.png" title="MySQL 5 Install Paths"><img src="http://saltwaterc.net/wp-content/uploads/mysql5-server-install-path-image1.png" alt="MySQL 5 Install Paths" /></a></p>
<p>Se continua instalarea. La aparitia acelor chestii despre MySQL Enterprise, se da &#8220;Next&#8221; pana in sfarsit se ajunge la ultimul pas:</p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/mysql5-wizard-completed-image.png" title="MySQL 5 Wizard Completed"><img src="http://saltwaterc.net/wp-content/uploads/mysql5-wizard-completed-image.png" alt="MySQL 5 Wizard Completed" /></a></p>
<p>Bifa aia e importanta, dupa ea se va porni procesul de configurare al serverului MySQL si pe aici unii s-ar putea sa isi prinda urechile.Se continua clasicul click-Next pana configuratorul intreaba despre tipul configurarii:</p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/mysql5-server-instance-configuration-image.png" title="MySQL 5 Server Instance Configuration"><img src="http://saltwaterc.net/wp-content/uploads/mysql5-server-instance-configuration-image.png" alt="MySQL 5 Server Instance Configuration" /></a></p>
<p>Urmatoarea alegere este atat de evidenta, incat nu voi pune o poza ce sa o arate. Se va alege &#8220;Developer Machine&#8221; la server type. Urmatorul pas cere modul de utilizare a bazei de date. Cel implicit, &#8220;Multifunctional Database&#8221; este potrivit pentru acest tip de instalare. La urmatorul pas despre &#8220;InnoDB Tablespace Settings&#8221; se lasa optiunile implicite. Presupun ca pe C:\ exista suficient spatiu.</p>
<p>Urmatorul pas presupune setarea numarului de conexiuni concurente. De regula, desi in procesul de dezvoltare sunt rare situatiile in care optiunea implicita, &#8220;Decision Support (DSS)/OLAP&#8221; ce presupune un numar maxim 20 conexiuni concurente s-ar putea sa fie suficient, subsemnatul foloseste optiunea &#8220;Manual Setting&#8221; si pune numarul la 50.</p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/mysql5-server-instance-configuration-concurent-connections-image.png" title="MySQL 5 Server Instance Configuration Concurent Connections"><img src="http://saltwaterc.net/wp-content/uploads/mysql5-server-instance-configuration-concurent-connections-image.png" alt="MySQL 5 Server Instance Configuration Concurent Connections" /></a></p>
<p>Mai departe, la setarile de retea, &#8220;Enable TCP/IP Networking&#8221; este obligatoriu. Nu este necesara activarea unei exceptii in firewall daca baza de date nu va fi folosita inafara masinii. Eu deschid o gaura in firewall pentru acest port pentru ca se intampla sa accesez o baza de date din exterior. Exista alternativa la TCP/IP si anume &#8220;named pipes&#8221;, dar aceasta va fi lasata deoparte pe moment. Se justifica alegerea pentru masinile ce ruleaza baze de date impreuna cu aplicatii ce le folosesc, in rest, configurarea este putin mai dificila. Web-ul este gandit ca modular, deci in practica, exceptand o parte a Web hosturilor shared (sau cei ce au bani doar de un VPS/masina dedicata), serverul MySQL va rula pe o masina dedicata, in concluzie TCP/IP va fi singura cale de a comunica cu bazele de date. &#8220;Enable Strict Mode&#8221; este recomandat de catre installer si de catre subsemnatul.</p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/mysql5-server-instance-configuration-networking-options-image.png" title="MySQL 5 Server Instance Configuration Networking Options"><img src="http://saltwaterc.net/wp-content/uploads/mysql5-server-instance-configuration-networking-options-image.png" alt="MySQL 5 Server Instance Configuration Networking Options" /></a></p>
<p>Urmatorul pas este unul foarte important. O greseala in alegere aici se poate propaga mai departe in optiunile implicite si mai departe in probleme mari. Totul ar fi bine si frumos daca ar exista un singur set de caractere, dar din pacate nu este asa. Iar daca intentionezi sa dezvolti o aplicatie ce va primi altceva inafara de caractere latine si uzuale, este cazul sa pui bifa pe &#8220;Best Support For Multilingualism&#8221;. Se pot face hack-uri la nivel de cod PHP pentru a putea fi folosit setul de caractere implicit, dar aceasta inseamna ca toate sirurile de caractere ce se indreapta catre baza de date sa treaca prin acel filtru, iar o mica neatentie poate sa duca la ore de debugging inutil. In concluzie, mai bine se lucreaza direct cu UTF8.</p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/mysql5-server-instance-configuration-default-charset-image.png" title="MySQL 5 Server Instance Configuration Default Charset"><img src="http://saltwaterc.net/wp-content/uploads/mysql5-server-instance-configuration-default-charset-image.png" alt="MySQL 5 Server Instance Configuration Default Charset" /></a></p>
<p>Mai departe urmeaza setarile serviciului. Da, este recomandat ca MySQL sa fie instalat deasemenea ca serviciu. Bifa pentru lansare automata iarasi e recomandata. Deasemenea recomand adaugarea directorului bin al MySQL in %PATH%. Trebuie doar o bifa. Eu pun numele serviciului MySQL5.1 pentru ca am un fetis cu consistenta, iar Apache se pune Apache2.2 fara ca sa ma intrebe &#8211; deci pastrez ideea. Nu e obligatoriu.</p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/mysql5-server-instance-configuration-windows-options-image.png" title="MySQL 5 Server Instance Configuration Windows Options"><img src="http://saltwaterc.net/wp-content/uploads/mysql5-server-instance-configuration-windows-options-image.png" alt="MySQL 5 Server Instance Configuration Windows Options" /></a></p>
<p>Pasul urmator presupune setarile de securitate. Sub nici o forma nu este recomandata crearea unui &#8220;Anonymous Account&#8221;. Se recomanda crearea unei parole suficient de puternice pentru utilizatorul root ce este un superuser pentru MySQL. A nu se confunda cu root din *nix &#8211; utilizatorii MySQL nu sunt utilizatori de sistem. Serverul are propriul sistem de management al utilizatorilor. Deasemenea nu se recomanda activarea accesului remote pentru root.</p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/mysql5-server-instance-configuration-security-options-image.png" title="MySQL 5 Server Instance Configuration Security Options"><img src="http://saltwaterc.net/wp-content/uploads/mysql5-server-instance-configuration-security-options-image.png" alt="MySQL 5 Server Instance Configuration Security Options" /></a></p>
<p>Se continua setup-ul si gata si cu MySQL.</p>
<h2>Bonus: instalarea phpMyAdmin 3.1</h2>
<p><a href="http://www.phpmyadmin.net/home_page/" title="phpMyAdmin" target="_blank"><strong>phpMyAdmin</strong></a> este un frontend MySQL popular si destul de bun la ceea ce face. Desi initial nu l-am prea suportat, pe servere la distanta se poate dovedi un aliat puternic. In concluzie este o aditie buna si pentru dezvoltarea locala, desi exista si alte optiuni, recomandate de altfel sa fie la indemana: <a href="http://dev.mysql.com/downloads/gui-tools/5.0.html" title="MySQL GUI Tools" target="_blank">MySQL Query Browser, MySQL Administrator</a> si <a href="http://dev.mysql.com/workbench/" title="MySQL Workbench" target="_blank">MySQL Workbench</a> &#8211; scule facute de cei de la MySQL AB &#8211; adica Sun &#8211; adica Oracle &#8211; daca este sa pastrez istoricul cumparaturilor. Mai exista si <a href="http://www.webyog.com/en/downloads.php" title="SQLyog" target="_blank">SQLyog</a>, un frontend ce imbina elemente de Query Browser si de Administrator. Unii prefera in locul lui <a href="http://www.heidisql.com/download.php" title="HeidiSQL" target="_blank">HeidiSQL</a> &#8211; desi acesta din urma stie mai putine.</p>
<p>De <a href="http://www.phpmyadmin.net/home_page/downloads.php" title="phpMyAdmin Download" target="_blank">aici</a> am luat ultima versiune stabila, si anume 3.1.5. Instalarea este relativ mai complicata decat in cazul chestiilor de mai sus pentru ca este aplicatie PHP si nu am apelat la metoda cea mai usoara, dar am apelat la cea mai comoda pe termen lung. Am downloadat:</p>
<p><em>phpMyAdmin-3.1.5-all-languages.zip</em></p>
<p>A urmat extragerea arhivei si redenumirea directorului <em>phpMyAdmin-3.1.5-all-languages</em> din interiorul ei in <em>phpmyadmin</em>. L-am mutat in <em>C:\wampp\</em>. Acesta trebuie sa contina fisierele phpMyAdmin. Daca contine alt director, atunci acela trebuie redenumit in phpmyadmin si mutat in WAMPP. Configurarea phpMyAdmin presupune copierea fisierului <em>config.sample.inc.php</em> in <em>config.inc.php</em> si modificarea lui. Modificari necesare:</p>
<ul>
<li>definirea <em>$cfg['blowfish_secret']</em> cu un sir de caractere arbitrar. Preferabil sa fie cat mai de neinteles. <strong>ATENTIE: </strong>pentru a nu invalida sintaxa config.inc.php trebuie sa se foloseasca apostrof nu ghilimele pentru a defini sirul blowfish_secret. Conform documentatiei phpMyAdmin acesta are o dimensiune maxima <em>aparenta</em> de 46 caractere. Un generator bun poate fi algoritmul sha1, desi setul de caractere este mai redus decat in cazul in care se foloseste un generator ce sa includa varii caractere speciale. Pentru sha1 apeleaza cu incredere la: <a href="http://www.shell-tools.net/index.php?op=hash_sha" title="SHA1 Hash Generator" target="_blank">http://www.shell-tools.net/index.php?op=hash_sha </a></li>
<li>schimbarea <em>$cfg['Servers'][$i]['extension']</em> din <em>mysql</em> in <em>mysqli</em>. MySQLi aka MySQL Improved &gt; MySQL.</li>
</ul>
<p>Mai are si alte optiuni, dar nu sunt necesare si nu trebuie schimbate. <a href="http://www.phpmyadmin.net/documentation/" title="phpMyAdmin Documentation" target="_blank">Documentatia phpMyAdmin</a> le explica pe indelete.</p>
<p>Urmeaza integrarea cu Apache. Desi directorul s-ar fi putut pune pur si simplu in interiorul <em>C:\wampp\htdocs</em> s-ar putea sa incurce pe acolo, sau sa fie sters din greseala. Deci apelarea la un alias este o optiune mult mai recomandata. Mai intai voi prezenta pasii, dupa care voi oferi detalii pentru doi dintre ei. Aici sunt pasii:</p>
<ol>
<li>crearea unui fisier text gol in <em>C:\wampp\apache\conf\extra</em>. Acesta se va numi <em>httpd-phpmyadmin.conf</em> pentru a pastra conventia de nume ce o are Apache pentru fisierele de configurare. Fisierul se va gasi ca download la sfarsitul articolului, alaturi de toate celalte resurse.</li>
<li>acest fisier va trebui inclus in config-ul cel mare, si anume <em>C:\wampp\apache\conf\httpd.conf</em>. Se include fisierul anterior creat, chiar dupa lucrurile configurate automat de catre installer-ul PHP (scrie in comentariu, liniile ce incep cu # sunt considerate comentarii). Locul acesta se gaseste la sfarsitul fisierului.</li>
<li>restart la Apache.</li>
<li>vizitarea adresei <a href="http://localhost/phpmyadmin" title="phpMyAdmin" target="_blank" rel="noindex,nofollow">http://localhost/phpmyadmin</a> pentru validare.</li>
</ol>
<p>Continutul lui <em>httpd-phpmyadmin.conf</em>:</p>
<blockquote><p><em>Alias /phpmyadmin &#8220;C:/wampp/phpmyadmin&#8221;</em></p>
<p><em>&lt;Directory &#8220;C:/wampp/phpmyadmin&#8221;&gt;<br />
Options Indexes FollowSymLinks<br />
AllowOverride None<br />
Order deny,allow<br />
Allow from all<br />
DirectoryIndex index.php</em></p>
<p><em>&lt;IfModule mod_php4.c&gt;<br />
AddType application/x-httpd-php .php</em></p>
<p><em>php_flag magic_quotes_gpc Off<br />
php_flag track_vars On<br />
php_flag register_globals Off<br />
php_value include_path .<br />
&lt;/IfModule&gt;</em></p>
<p><em>&lt;IfModule mod_php5.c&gt;<br />
AddType application/x-httpd-php .php</em></p>
<p><em>php_flag magic_quotes_gpc Off<br />
php_flag track_vars On<br />
php_flag register_globals Off<br />
php_value include_path .<br />
&lt;/IfModule&gt;<br />
&lt;/Directory&gt;</em></p></blockquote>
<p><strong>ATENTIE:</strong>  datorita modului retard prin care WordPress inlocuieste ghilimelele cu niste chestii ce seamana cu ele dar sunt inclinate (practic alte caractere), metoda copy-paste a textului de mai sus nu se preteaza fara o curatare a mizeriilor. Se recomanda download-ul fisierului de la sfarsitul articolului.</p>
<p>Includerea fisierului de mai sus in <em>httpd.conf</em> prespune adaugarea la sfarsitul <em>httpd.conf</em> a:</p>
<blockquote><p><em># Include the phpMyAdmin configuration file<br />
Include conf/extra/httpd-phpmyadmin.conf</em></p></blockquote>
<p>In principiu cam in aceasta consta o instalare de phpMyAdmin. Fisierul de configurare pentru Apache este inspirat de cel din <a href="http://www.debian.org/" title="Debian" target="_blank">Debian</a>, desi are vreo cateva chestii noi in el, si vreo cateva chestii scoase. Atentie: nu incerca chestii gen &#8220;I know better&#8221;, mai ales daca iti vine vreo idee creata sa scoti linia cu &#8220;Allow from all&#8221;. Apache va refuza sa serveasca directorul.Warning-ul din footer, si anume: &#8220;Your PHP MySQL library version 5.0.51a differs from your MySQL server version 5.1.34. This may cause unpredictable behavior.&#8221; se poate ignora. Inca n-am intalnit probleme folosint clientul de MySQL 5.0, si nu, nu am avut timp sau chef sa caut sau sa imi compilez unul pentru MySQL 5.1.Va urma.</p>
<p>Niste imagini pe post de dovezi (in cazul 3.1.5 arata la fel, nu am actualizat si imaginea):</p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/phpmyadmin3-login-window-image.png" title="phpMyAdmin 3 Login Window"><img src="http://saltwaterc.net/wp-content/uploads/phpmyadmin3-login-window-image.thumbnail.png" alt="phpMyAdmin 3 Login Window" /></a><a href="http://saltwaterc.net/wp-content/uploads/phpmyadmin3-logged-in-image.png" title="phpMyAdmin 3 Logged In"><img src="http://saltwaterc.net/wp-content/uploads/phpmyadmin3-logged-in-image.thumbnail.png" alt="phpMyAdmin 3 Logged In" /></a></p>
<h2>Download:</h2>
<p><a href="http://saltwaterc.net/wp-download/wampp/apache_2.2.11-win32-x86-openssl-0.9.8i.msi.zip" title="Apache 2.2.11" target="_blank">apache_2.2.11-win32-x86-openssl-0.9.8i.msi</a> &#8211; installer-ul Apache</p>
<p><a href="http://saltwaterc.net/wp-download/wampp/php-5.2.6-win32-installer.msi.zip" title="PHP 5.2.6" target="_blank">php-5.2.6-win32-installer.msi</a> &#8211; installer-ul PHP</p>
<p><a href="http://saltwaterc.net/wp-download/wampp/mysql-5.1.34-winx64.msi.zip" title="MySQL 5.1 64-bit" target="_blank">mysql-5.1.34-winx64.msi</a> &#8211; installer-ul 64-bit al MySQL</p>
<p><a href="http://saltwaterc.net/wp-download/wampp/mysql-5.1.34-win32.msi.zip" title="MySQL 5.1 32-bit" target="_blank">mysql-5.1.34-win32.msi</a> &#8211; installer-ul 32-bit al MySQL</p>
<p><a href="http://saltwaterc.net/wp-download/wampp/phpMyAdmin-3.1.5-all-languages.zip" title="phpMyAdmin 3.1.5" target="_blank">phpMyAdmin-3.1.5-all-languages.zip</a> &#8211; release-ul de phpMyAdmin</p>
<p><a href="http://saltwaterc.net/wp-download/wampp/httpd-phpmyadmin.zip" title="phpMyAdmin Apache Configuration" target="_blank">httpd-phpmyadmin.conf</a> &#8211; fisierul de configurare al phpMyAdmin ce il foloseste Apache.</p>
<p><a href="http://saltwaterc.net/wp-download/wampp/WAMPP-images.zip" title="WAMPP Images" target="_blank">WAMPP-images.zip</a> &#8211; imaginile folosite pe parcursul articolului</p>
<p>Recomand totusi sursele oficiale pentru fisierele de mai sus. Le-am pus pentru comoditatea unora cu speranta sa nu fie abuzate, in caz contrar, vor fi scoase de la download, sau voi bana pe cei ce le abuzeaza. Inclin totusi catre a doua varianta.</p>
<h2>Documentatie online:</h2>
<p>Apache &#8211; <a href="http://httpd.apache.org/docs/2.2/" title="Apache 2.2 Documentation" target="_blank">http://httpd.apache.org/docs/2.2/</a></p>
<p>PHP &#8211; <a href="http://www.php.net/manual/en/" title="PHP Documentation" target="_blank">http://www.php.net/manual/en/</a></p>
<p>MySQL &#8211; <a href="http://dev.mysql.com/doc/refman/5.1/en/" title="MySQL 5.1 Documentation" target="_blank">http://dev.mysql.com/doc/refman/5.1/en/</a></p>
<h2>Manuale:</h2>
<p>PHP &#8211; <a href="http://www.php.net/download-docs.php" title="PHP Manuals" target="_blank">http://www.php.net/download-docs.php</a></p>
<p>MySQL -  <a href="http://dev.mysql.com/doc/" title="MySQL Manuals" target="_blank">http://dev.mysql.com/doc/</a></p>
<p>Recomand versiunile CHM ale manualelor.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/windows/instalarea-apache-22-php-52-mysql-51-sub-windows.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Pretentii pentru tari bananiere</title>
		<link>http://www.saltwaterc.net/windows/pretentii-pentru-tari-bananiere.html</link>
		<comments>http://www.saltwaterc.net/windows/pretentii-pentru-tari-bananiere.html#comments</comments>
		<pubDate>Tue, 02 Sep 2008 13:29:52 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[Programare]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://saltwaterc.net/pics/pretentii-pentru-tari-bananiere.html</guid>
		<description><![CDATA[
Bagand niste clice pe blogu&#8217; lu&#8217; necenzurat am dat de imaginea din figura alaturata. Desi imi vine greu sa cred, daca imaginea este pe bune, atunci nu primeaza la categoria penibil prin cerinta in sine, desi intre noi fie vorba, echipa ReactOS se chinuie de ani de zile sa scoata ceva decent si inca mai [...]]]></description>
			<content:encoded><![CDATA[<div style="float: left; margin-right: +10px;"><a title="Stupidity, C++, and the OS" href="http://saltwaterc.net/wp-content/uploads/stupidity.png"><img src="http://saltwaterc.net/wp-content/uploads/stupidity.thumbnail.png" alt="Stupidity, C++, and the OS" /></a></div>
<p>Bagand niste clice pe <a title="necenzurat`s Pandemonium" href="http://blog.w2.ro/" target="_blank">blogu&#8217; lu&#8217; necenzurat</a> am dat de imaginea din figura alaturata. Desi imi vine greu sa cred, <strong>daca imaginea este pe bune</strong>, atunci nu primeaza la categoria penibil prin cerinta in sine, desi intre noi fie vorba, echipa ReactOS se chinuie de ani de zile sa scoata ceva decent si inca mai au de lucru (mult), in timp ce nenea asta cu pretentii pentru oameni locuitori in tara bananiera asteapta ca pentru un buget de 20-100$ sa se aleaga cu un &#8216;Windows&#8217; numa bun pentru vanzare. Failing at failing sau prostie<sup>2</sup>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/windows/pretentii-pentru-tari-bananiere.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Windows XP si Automatic Restart</title>
		<link>http://www.saltwaterc.net/windows/windows-xp-si-automatic-restart.html</link>
		<comments>http://www.saltwaterc.net/windows/windows-xp-si-automatic-restart.html#comments</comments>
		<pubDate>Fri, 15 Aug 2008 14:54:43 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://saltwaterc.net/tech/windows-xp-si-automatic-restart.html</guid>
		<description><![CDATA[Azi dimineata m-am trezit cu chef de palavrageala pe forumul eMAG dupa ce mi-am gasit sistemul asteptandu-ma cu login window-ul de Ubuntu &#8211; ceea ce nu e bine. Il lasasem sub Windows cu buna stiinta ca sa faca treaba ce tine de Windows. Desi m-am mai plans de aceasta problema, pana acum nu mi se [...]]]></description>
			<content:encoded><![CDATA[<p>Azi dimineata m-am trezit cu chef de palavrageala pe forumul eMAG dupa ce mi-am gasit sistemul asteptandu-ma cu login window-ul de Ubuntu &#8211; ceea ce nu e bine. Il lasasem sub Windows cu buna stiinta ca sa faca treaba ce tine de Windows. Desi m-am mai plans de aceasta problema, pana acum nu mi se umpluse pararul. Acum mi-a ajuns.</p>
<p>Solutiile ce le gasistem in prima faza functioneaza OK sub Windows XP Pro, dar eu ca XP Home user, am de suferit pe ici pe colo. Din fericire Google functioneaza asa cum trebuie din cand in cand, deci in aceasta dimineata am gasit exat ceea ce cautam. Am cautat o solutie universala, deci am gasit o solutie universala. Nenea Group Policy editor nu ajuta, deci nu il voi pomeni. Lasam la o parte chestia mai sus pomenita.</p>
<p>Aplicatia (da, aplicatia) se numeste Auto Reboot Remover, si este a naibii de simplu de utilizat. Presupune doar rularea ei cu privilegii de administrator.</p>
<p>Download: <a href="http://www.intelliadmin.com/Downloads.htm" title="IntelliAdmin" target="_blank">http://www.intelliadmin.com/Downloads.htm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/windows/windows-xp-si-automatic-restart.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reinstalarea stivei TCP/IP sub Windows XP</title>
		<link>http://www.saltwaterc.net/windows/reinstalarea-stivei-tcpip-sub-windows-xp.html</link>
		<comments>http://www.saltwaterc.net/windows/reinstalarea-stivei-tcpip-sub-windows-xp.html#comments</comments>
		<pubDate>Fri, 15 Aug 2008 13:25:51 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://saltwaterc.net/tech/reinstalarea-stivei-tcpip-sub-windows-xp.html</guid>
		<description><![CDATA[Nu stiu de altii, dar in vremuri oarecum uitate am avut de harta cu stiva TCP/IP in sensul ca se infunda in draci si reteaua mergea in suturi, mai cu noduri, mai cu viata, in functie de cheful pe care il avea. Acum prin alt context am ajuns sa iau iarasi legatura cu acest fapt.
Solutia [...]]]></description>
			<content:encoded><![CDATA[<p>Nu stiu de altii, dar in vremuri oarecum uitate am avut de harta cu stiva TCP/IP in sensul ca se infunda in draci si reteaua mergea in suturi, mai cu noduri, mai cu viata, in functie de cheful pe care il avea. Acum prin alt context am ajuns sa iau iarasi legatura cu acest fapt.</p>
<p>Solutia pe care orice but o poate aplica este format C: &#8211; reinstall Windows &#8211; si ca un but ce sunt &#8211; am aplicat-o de cateva ori. Intre timp, am mai renuntat la un Admin si la anumite comportamente daunatoare sistemului, deci as putea spune ca m-am maturizat. Odata cu aceasta metodele s-au maturizat. Este mai eficient sa repari o problema minora decat sa darami tot si sa reconstruiesti iarasi totul.<span id="more-487"></span></p>
<p>Deci sa revenim la stiva noastra cea de toate zilele. Dintr-un regedit rulat cu privilegii de administrare se sterg urmatoarele balarii din registru:</p>
<blockquote><p> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\<br />
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DHCP\Parameters\</p></blockquote>
<p>Inca nu am terminat. Povestea inca este paroasa. Daca cedati acum, puteti sa va luati gandul de la Web si Messenger. Windozarii de la Microsoft au implementat un utilitar smecher numit NetShell. Acest utilitar reinstaleaza practic distrugerile compuse mai devreme. Rulati intr-o consola de admin (Start→Run→cmd &#8211; daca sunteti admin &#8211; desi nu sunt de acord, daca nu sunteti admin, nu trebuie sa va spun ce si cum) o chestie de asta:</p>
<blockquote><p> netsh int ip reset reset_log.txt</p></blockquote>
<p>Voila. Bucurativa de stiva proaspata de retea. Reboot.</p>
<h1><a href="http://saltwaterc.net/disclaimer/"><span style="color: #000000">Disclaimer</span></a></h1>
]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/windows/reinstalarea-stivei-tcpip-sub-windows-xp.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A innebunit lupul</title>
		<link>http://www.saltwaterc.net/windows/a-innebunit-lupul.html</link>
		<comments>http://www.saltwaterc.net/windows/a-innebunit-lupul.html#comments</comments>
		<pubDate>Fri, 27 Jun 2008 10:09:07 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://saltwaterc.net/pics/a-innebunit-lupul.html</guid>
		<description><![CDATA[Pentru prima data in viata imi este dat sa vad un minisite facut de Microsoft ce respecta intocmai standardele Web (cu mici hibe ce-i drept, dar sunt doar warnings NU errors). Este vorba despre minisite-ul ce promoveaza Silverlight &#8230; http://www.microsoft.com/silverlight/default.aspx.
Ca Web Standards maniac, visez la ziua aceea cand codul scris si testat pe un browser [...]]]></description>
			<content:encoded><![CDATA[<p>Pentru prima data in viata imi este dat sa vad un minisite facut de Microsoft ce respecta intocmai standardele Web (cu mici hibe ce-i drept, dar sunt doar warnings NU errors). Este vorba despre minisite-ul ce promoveaza Silverlight &#8230; <a href="http://www.microsoft.com/silverlight/default.aspx" title="Microsoft Silverlight: Light Up the Web" target="_blank">http://www.microsoft.com/silverlight/default.aspx</a>.</p>
<p>Ca Web Standards maniac, visez la ziua aceea cand codul scris si testat pe un browser sa functioneze la fel pe toate. Dar &#8230; este un inceput. Kudos Microsoft pentru efort.</p>
<p align="center"> <a href="http://saltwaterc.net/wp-content/uploads/validator1.png" title="W3C Validation" rel="lightbox-validator"><img src="http://saltwaterc.net/wp-content/uploads/validator1.thumbnail.png" alt="W3C Validation" /></a><a href="http://saltwaterc.net/wp-content/uploads/validator2.png" title="Firefox + HTML Validator" rel="lightbox-validator"><img src="http://saltwaterc.net/wp-content/uploads/validator2.thumbnail.png" alt="Firefox + HTML Validator" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/windows/a-innebunit-lupul.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Website is down</title>
		<link>http://www.saltwaterc.net/windows/the-website-is-down.html</link>
		<comments>http://www.saltwaterc.net/windows/the-website-is-down.html#comments</comments>
		<pubDate>Thu, 26 Jun 2008 16:02:58 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://saltwaterc.net/videos/the-website-is-down.html</guid>
		<description><![CDATA[O chestie criminala cu adresa la suportul tehnic si cei ce il cer. Enjoy.
http://www.thewebsiteisdown.com/
]]></description>
			<content:encoded><![CDATA[<p>O chestie criminala cu adresa la suportul tehnic si cei ce il cer. Enjoy.</p>
<p><a href="http://www.thewebsiteisdown.com/" title="The Website is down" target="_blank">http://www.thewebsiteisdown.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/windows/the-website-is-down.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://s6.video2.blip.tv/0600000044297/Joshw-SalesGuyVsWebDude782.flv" length="128762180" type="video/x-flv" />
		</item>
		<item>
		<title>Ce inseamna VISTA?</title>
		<link>http://www.saltwaterc.net/rant/ce-inseamna-vista.html</link>
		<comments>http://www.saltwaterc.net/rant/ce-inseamna-vista.html#comments</comments>
		<pubDate>Thu, 21 Feb 2008 12:00:58 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[Rant]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://saltwaterc.net/rant/ce-inseamna-vista.html</guid>
		<description><![CDATA[Raspunsul este simplu &#8230; o poza face mai mult decat 1000 de cuvinte &#8230;

Thanks to Ovidel &#8230;
Edit @ Request &#8211; Thanks to Ovidel&#8217;s Girlfriend (aka Geniulm)
]]></description>
			<content:encoded><![CDATA[<p>Raspunsul este simplu &#8230; o poza face mai mult decat 1000 de cuvinte &#8230;</p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/1ernep.jpg" title="VISTA"><img src="http://saltwaterc.net/wp-content/uploads/1ernep.jpg" alt="VISTA" /></a></p>
<p>Thanks to <a href="http://ovidel46.saltwaterc.net/" title="Ovidel" target="_blank">Ovidel</a> &#8230;</p>
<p>Edit @ Request &#8211; Thanks to Ovidel&#8217;s Girlfriend (aka Geniulm)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/rant/ce-inseamna-vista.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>KDE 4 Screenshots &#8211; Windows</title>
		<link>http://www.saltwaterc.net/windows/kde-4-screenshots-windows.html</link>
		<comments>http://www.saltwaterc.net/windows/kde-4-screenshots-windows.html#comments</comments>
		<pubDate>Tue, 29 Jan 2008 17:20:04 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://saltwaterc.net/tech/kde-4-screenshots-windows.html</guid>
		<description><![CDATA[Asa cum ziceam intr-unul din comentariile ce tin de postul dedicat lui KDE 4, urmeaza sa trantesc niste screenshoturi KDE 4 urmate de niste comentarii. Mai intai &#8230; imaginile &#8230;






 Asa arata directorul de instalare. Contine si arhivele/installerele pachetelor instalate. Nu e full install &#8230; dar e foarte aproape.
Installerul grafic si un &#8220;About&#8221;.
Crash de installer [...]]]></description>
			<content:encoded><![CDATA[<p>Asa cum ziceam intr-unul din comentariile ce tin de postul dedicat lui KDE 4, urmeaza sa trantesc niste screenshoturi KDE 4 urmate de niste comentarii. Mai intai &#8230; imaginile &#8230;</p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/kde4-windows01.PNG" title="Harababura din install root" rel="lightbox-kde4-windows"><img src="http://saltwaterc.net/wp-content/uploads/kde4-windows01.thumbnail.PNG" alt="Harababura din install root" /></a><a href="http://saltwaterc.net/wp-content/uploads/kde4-windows02.PNG" title="Installerul grafic (cygwin-like)" rel="lightbox-kde4-windows"><img src="http://saltwaterc.net/wp-content/uploads/kde4-windows02.thumbnail.PNG" alt="Installerul grafic (cygwin-like)" /></a><a href="http://saltwaterc.net/wp-content/uploads/kde4-windows03.PNG" title="Ooops! It crashed :(" rel="lightbox-kde4-windows"><img src="http://saltwaterc.net/wp-content/uploads/kde4-windows03.thumbnail.PNG" alt="Ooops! It crashed :(" /></a></p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/kde4-windows04.PNG" title="Harababura din /bin" rel="lightbox-kde4-windows"><img src="http://saltwaterc.net/wp-content/uploads/kde4-windows04.thumbnail.PNG" alt="Harababura din /bin" /></a><a href="http://saltwaterc.net/wp-content/uploads/kde4-windows05.PNG" title="Spatiul total" rel="lightbox-kde4-windows"><img src="http://saltwaterc.net/wp-content/uploads/kde4-windows05.thumbnail.PNG" alt="Spatiul total" /></a><a href="http://saltwaterc.net/wp-content/uploads/kde4-windows06.PNG" title="O cautare folosind kfind" rel="lightbox-kde4-windows"><img src="http://saltwaterc.net/wp-content/uploads/kde4-windows06.thumbnail.PNG" alt="O cautare folosind kfind" /></a></p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/kde4-windows07.PNG" title="Un simplu “Hello World” in PHP folosind Kate" rel="lightbox-kde4-windows"><img src="http://saltwaterc.net/wp-content/uploads/kde4-windows07.thumbnail.PNG" alt="Un simplu “Hello World” in PHP folosind Kate" /></a><a href="http://saltwaterc.net/wp-content/uploads/kde4-windows08.PNG" title="M-a mancat in cur sa apas pe “Network”" rel="lightbox-kde4-windows"><img src="http://saltwaterc.net/wp-content/uploads/kde4-windows08.thumbnail.PNG" alt="M-a mancat in cur sa apas pe “Network”" /></a><a href="http://saltwaterc.net/wp-content/uploads/kde4-windows09.PNG" title="Konqueror - at last …" rel="lightbox-kde4-windows"><img src="http://saltwaterc.net/wp-content/uploads/kde4-windows09.thumbnail.PNG" alt="Konqueror - at last …" /></a></p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/kde4-windows10.PNG" title="Failure is not an option - it comes bundled" rel="lightbox-kde4-windows"><img src="http://saltwaterc.net/wp-content/uploads/kde4-windows10.thumbnail.PNG" alt="Failure is not an option - it comes bundled" /></a><a href="http://saltwaterc.net/wp-content/uploads/kde4-windows11.PNG" title="Ceva care pare ca merge" rel="lightbox-kde4-windows"><img src="http://saltwaterc.net/wp-content/uploads/kde4-windows11.thumbnail.PNG" alt="Ceva care pare ca merge" /></a><a href="http://saltwaterc.net/wp-content/uploads/kde4-windows12.PNG" title="Konqueror pe net + About" rel="lightbox-kde4-windows"><img src="http://saltwaterc.net/wp-content/uploads/kde4-windows12.thumbnail.PNG" alt="Konqueror pe net + About" /></a></p>
<p align="center"><a href="http://saltwaterc.net/wp-content/uploads/kde4-windows13.PNG" title="Linux Soft Forum si fonturi ciudate in Konqueror" rel="lightbox-kde4-windows"><img src="http://saltwaterc.net/wp-content/uploads/kde4-windows13.thumbnail.PNG" alt="Linux Soft Forum si fonturi ciudate in Konqueror" /></a><a href="http://saltwaterc.net/wp-content/uploads/kde4-windows14.PNG" title="Ziceam ceva mai devreme ceva legat de “Failure”" rel="lightbox-kde4-windows"><img src="http://saltwaterc.net/wp-content/uploads/kde4-windows14.thumbnail.PNG" alt="Ziceam ceva mai devreme ceva legat de “Failure”" /></a><a href="http://saltwaterc.net/wp-content/uploads/kde4-windows15.PNG" title="Ba mai mult, pacatul de a da click-dreapta" rel="lightbox-kde4-windows"><img src="http://saltwaterc.net/wp-content/uploads/kde4-windows15.thumbnail.PNG" alt="Ba mai mult, pacatul de a da click-dreapta" /></a></p>
<ol>
<li> Asa arata directorul de instalare. Contine si arhivele/installerele pachetelor instalate. Nu e full install &#8230; dar e foarte aproape.</li>
<li>Installerul grafic si un &#8220;About&#8221;.</li>
<li>Crash de installer grafic, perfect reproductibil.</li>
<li>Harababura din /bin, asemanatoare cu aia din install root.</li>
<li>Dimensiunea totala a fisierelor. Pentru amatorii de explicatii: spatiul raportat de pe disk este atat de mare deoarece folosesc o dimensiune mai mare pentru cluster. E pe notebook, deci storc cat de poate din performanta disk-ului.</li>
<li>O simpla cautare folosind kfind. Intotdeauna mi-a placfut &#8230; pardon &#8230; placut aceasta aplicatie.</li>
<li>Kate in actiune: &#8220;Hello World&#8221; in PHP impreuna cu dialogul de salvare al scriptului.</li>
<li>Ziceam ceva mai devreme de dialogul acela &#8230; Network =&gt; Crash. Mai bine ii ziceau direct &#8220;Crash&#8221;. PS: am facut prin anul II de faculta o aplicatie de Windows care avea ca &#8220;feature&#8221; un buton de crash care chiar functiona, asta pe langa chestiile care le facea impecabil (parol). Ce sa mai zic &#8230; ideea a fost originala, pacat ca laborantul de la scoala este constipat si nu i-a placut ironia fina.</li>
<li>Konqueror in toata &#8220;splendoarea&#8221; sa. Despre &#8220;splendoare&#8221; &#8230; urmeaza. PS: nimic inafara de &#8220;Home&#8221; nu functioneaza corect.</li>
<li>Orice icon de aplicatie este intampinat de acest dialog.</li>
<li>Hmm &#8230; in sfarsit ceva ce pare a functiona.</li>
<li>Asta chiar merge. Macar ca browser, Konqueror se limiteaza la bugurile de engine pe care le stiu deja de sub Linux. Apropo de aceste buguri, aici nu mai intervine particula: &#8220;developer idiot&#8221; &#8211; codul este 100% XHTML 1.0 Transitional &#8211; validat atat de catre XHTML Validator pentru Firefox, cat si de validatorul celor de la W3C (obvious); nu poate fi vorba de erori JavaScript &#8211; error console si Firebug sunt curate, CSS-ul e valid conform CSS 2 &#8211; validat online =&gt; browser bugs (singurul sub care imi apar anumite chestii, indiferent de platforma).</li>
<li>Linux Soft Forum vazut prin Konqueror si o mana de fonturi ciudate. Hai ca sub Linux inteleg fonturile ciudate &#8230; dar sub Windows &#8230;</li>
<li>Daca la icons de aplicatii nu vrea &#8230; apai nici la fisiere nu vrea. Tot acolo ajungem.</li>
<li>Click dreapta &#8230; click dreapta &#8230; da &#8230; am dat un click dreapta si s-a dus naibii totul.</li>
</ol>
<p>Concluzia de final: atat Konqueror pe care am pus accent, cat si KDE 4 in general, inca nu sunt gata de o provocare integrala. Cum ziceam si anterior &#8230; inca sunt in stadiul de preview, si cand zic preview, ma refer la un Alpha acolo &#8230; In articolul anterior am fost indulgent si am folosit eufemisme &#8230; aici nu pot sa indulcesc situatia &#8230; vorbesc imaginile pentru mine.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/windows/kde-4-screenshots-windows.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KDE 4</title>
		<link>http://www.saltwaterc.net/windows/kde-4.html</link>
		<comments>http://www.saltwaterc.net/windows/kde-4.html#comments</comments>
		<pubDate>Sun, 27 Jan 2008 17:10:13 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://saltwaterc.net/tech/kde-4.html</guid>
		<description><![CDATA[A venit momentul sa scriu si cateva cuvinte despre noul si mult asteptatul KDE 4. Sub OS X nu l-am incercat din lipsa de material de teste pentru moment, si oricum, mi-am cam tras concluziile.
KDE 4, asa cum a fost promis, ruleaza nativ sub Linux, Windows, OS X, mai pe scurt, sub orice platforma sub [...]]]></description>
			<content:encoded><![CDATA[<p>A venit momentul sa scriu si cateva cuvinte despre noul si mult asteptatul KDE 4. Sub OS X nu l-am incercat din lipsa de material de teste pentru moment, si oricum, mi-am cam tras concluziile.</p>
<p>KDE 4, asa cum a fost promis, ruleaza nativ sub Linux, Windows, OS X, mai pe scurt, sub orice platforma sub care este suportat <a href="http://en.wikipedia.org/wiki/Qt_(toolkit)" title="Qt - Wikipedia" target="_blank">Qt</a>-ul celor de la <a href="http://trolltech.com/products/qt" title="Qt - Trolltech" target="_blank">Trolltech</a>. Inainte sa apara eram destul de entuziasmat de vestea aparitiei KDE 4. Tin minte ca din intamplare citisem despre planurile ce tin de KDE 4 inca de acum 2 ani. Eram entuziasmat pentru faptul ca la vremea cand asteptam KDE 4, inca eram user de KDE 3 sub Linux. Faptul ca a fost promis nativ sub Windows/OS X nu a facut decat sa imi creasca entuziasmul.</p>
<p>O mica notificare ar fi faptul ca sub OS X rula KDE 3 si o buna parte a aplicatiilor ce tin de acest desktop environment, dar modul de rulare nu era nativ ci rula sub implementarea Apple a <a href="http://www.xfree86.org/" title="Xfree86" target="_blank">XFree86</a>. Chiar am fost curios sa vad cum arata o mana de aplicatii KDE sub OS X si au iesit momente horror &#8230; aratau ca nuca in perete si faptul ca nu rulau nativ era destul de nasol la consistenta. Acum cica s-a rezolvat problema &#8230; astept sa vad cum arata treaba in teren.</p>
<p>Sub Windows lucrurile stateau putin diferit datorita anumitor restrictii ce tin de licentierea Qt 3. Da, KDE 4 respecta numerotarea versiunii majore de Qt sub care au fost dezvoltate &#8230; KDE 3 a fost dezvoltat sub Qt 3, KDE 4 sub Qt4. Nimic nou sub Soare. Odata ce problemele s-au rezolvat incepand cu v4 a Qt, acest fapt a permis portarea aplicatiilor si sub Windows.</p>
<p>Alaltaseara mi-am pus KDE 4 sub Windows. Installer-ul desi e grafic, cel mai probabil va pune probleme celor nefamiliarizati cu lumea *nix. Mi-e mi-a adus a installer de <a href="http://www.cygwin.com/" title="cygwin" target="_blank">cygwin</a>, deci concluzia rapida a fost ca baietii de la KDE nu au dorit sa reinventeze roata. Setup-ul a inceput in mod &#8220;uzual&#8221; &#8211; downloadarea pachetelor necesare din repository (uzual &#8211; cum ziceam mai sus, precum cygwin). Instalarea nu a decurs fara probleme. La anumite pachete setupul (v0.8.5 &#8211; cea mai recenta) claca fara drept de apel. Spre exemplu am dat sa instaleze toate tool-urile de development. Desi rar am avut nevoie de <a href="http://en.wikipedia.org/wiki/Concurrent_Versions_System" title="CVS" target="_blank">CVS</a> cand de regula gaseam sursele gata arhivate, am dat sa instaleze si TortoiseCVS. Asta a fost OK. A crapat la instalarea TortoiseSVN pe care il aveam instalat deja din moment ce sunt <a href="http://en.wikipedia.org/wiki/Subversion_%28software%29" title="SVN" target="_blank">SVN</a> user, ce-i drept aveam o versiune mai veche. Clacatul se traduce prin 100% load si apasarea butonului de &#8216;Cancel&#8217; se traducea prin proces care continua sa ruleze in background, dar nu facea nimic. Multumesc cerului ca setup-ul nu stie multi-core, deci sistemul nu a fost afectat substantial la viteza, sistemul mutandu-si chestiile pe core-ul celalalt al procesorului. Ar mai fi si alte pachete la care am intampinat probleme, si culmea, pachetele respective nu erau instalate anterior precum TortoiseSVN.</p>
<p>Utilizarea este de-a dreptul seaca. In primul rand trebuie rulate in terminal doua comenzi de configurare &#8230; nu am nimic impotriva, dar in documentatie caile erau indicate complet aiurea. Le-am dibut si am rezolvat. A urmat rularea aplicatiilor propriu zise. Practic installer-ul pune executabilele si dll-urile in directorul <em>bin</em> care se gaseste in directorul de instalare al KDE 4. Cum ziceam la un moment dat, poate fi putin ciudat pentru un user nefamiliarizat cu *nix. Pentru mine a fost OK, atata ca in <em>bin</em> este un haos de nedescris. Am dibuit niste chestii cunoscute, le-am rulat, a fost relativ OK. Prima executie a fost mai dureroasa in sensul ca tre sa isi faca in prealabil o chestie care ruleaza in background, dupa care nu mai sunt probleme. Aplicatiile se integreaza bine ca aspect printre celelalte. Inafara de cateva butoane si alte chestii tipice KDE, aplicatiile arata bine. M-am jucat cateva jocuri ce vin in pachet, am editat niste fisiere text folosind Kate si Kwrite, m-am dat pe net cu Konqueror. Desi am fost incantat, inca nu am vreun gand de inlocuire a unor aplicatii ce le folosesc deja sub Windows, exemplu Windows Explorer-ul pimpuit sa il dau la o parte pentru Konqueror din motive de varii instabilitati, feature-uri care nu functioneaza sau nu functioneaza corect, etc. Poate cel putin nu pentru moment. Mai este de lucru &#8230; atat la stabilitate cat si la uzabilitate. Oricum, KDE 4 sub Windows inseamna o mana de aplicatii, si nicidecum un full desktop environment, ceea ce lasa un gust semi-amar in gura.</p>
<p>Sub Linux totul a fost destul de scurt &#8230; dupa aproximativ 15 secunde de gugălit am gasit un repository neoficial in care sa fie KDE 4 pentru ubuntu. L-am instalat usor pentru ca package managementul si-a facut treaba. Mici probleme au fost la anumite aplicatii specifice, desi in general treaba a mers OK. Desktopul plasma arata bine, pare o revolutie peste KDE 3, desi mie inca nu mi-a sters impresia ca Vista Sidebar cu ale lui gadgets s-au mutat si s-au intins pe tot desktop-ul. La un moment dat a inceput chiar sa ma enerveze acest aspect. Interfata este mult mai bine lucrata din punctul de vedere al consistentei fata de KDE 3, multe chestii seamana, dar la anumite optiuni de configurare nu s-au eliminat dialogurile interminabile si putin uzabile. Am incercat sa schimb stilul ferestrelor de pe Oxygen (cel implicit si fresh pentru KDE 4) pe alte stiluri tipice KDE 3, dar a dus la scaderea caliatii vizuale. Oricum, la nivel de interfata, vizual vorbind, KDE 4 este peste KDE 3, desi inca nu s-au reparat unele din pacatele trecutului. Ce am apreciat a fost faptul ca s-a implementat meniul tabular care are motor de cautare pe care il stiu de sub openSUSE.</p>
<p>Aplicatii nu am prea testat pentru ca sincer nu ma interesau aplicatiile in sine, ci desktop environment-ul. Oricum, aplicatiile tipice KDE le rulez cu succes si sub Gnome, si chiar daca arata putin ciudat, tot raman in sfera acceptabilului. Desi de aproximativ 4 luni am trecut de la KDE 3 la Gnome, sincer sa fiu, nu m-as mai intoarce nici pentru KDE 4. In plus, desi initial erau o mana de chestii care in KDE le gaseam imediat si sub Gnome sapam dupa ele, cu timpul situatia s-a inversat. Exact aceasta a fost senzatia cand am trecut acum din sesiunea de Gnome in cea de KDE 4. Au inceput imediat sa imi lipseasca chestii, sa ma enerveze alte chestii, sa imi lipseasca <a href="http://www.compiz-fusion.org/" title="Compiz-Fusion" target="_blank">Compiz-Fusion</a> (da, dupa un an si ceva de OS X &#8211; am ramas fan al desktop-urilor 3D).</p>
<p>Pe total KDE 4 a fost pentru mine o semi-dezamagire, sau poate ca asteptarile mi-au fost prea mari. Vom vedea ce vor aduce versiunile mai noi, pentru ca desi e release, mie inca nu imi sterge impresia de preview release.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/windows/kde-4.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Sun Microsystems a anuntat cumpararea MySQL</title>
		<link>http://www.saltwaterc.net/windows/sun-microsystems-a-anuntat-cumpararea-mysql.html</link>
		<comments>http://www.saltwaterc.net/windows/sun-microsystems-a-anuntat-cumpararea-mysql.html#comments</comments>
		<pubDate>Wed, 16 Jan 2008 21:54:09 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://saltwaterc.net/tech/sun-microsystems-a-anuntat-cumpararea-mysql.html</guid>
		<description><![CDATA[O stire care personal m-a luat prin surprindere: cumpararea MySQL de catre Sun pentru nu mai putin de 1 miliard de dolari, adica 800 milioane in cash, iar restul de 200 milioane urmand a intra in buzunar prin actiuni. Tranzactia care este una de mare anvergura urmeaza a se finaliza undeva in jurul Q3/Q4 al [...]]]></description>
			<content:encoded><![CDATA[<p>O stire care personal m-a luat prin surprindere: cumpararea MySQL de catre Sun pentru nu mai putin de 1 miliard de dolari, adica 800 milioane in cash, iar restul de 200 milioane urmand a intra in buzunar prin actiuni. Tranzactia care este una de mare anvergura urmeaza a se finaliza undeva in jurul Q3/Q4 al anului fiscal 2008.</p>
<blockquote><p>Chiar si Google, YouTube, Yahoo sau Wikipedia, FaceBook, Nokia folosesc platforma MySQL. Este nu doar o platforma open source, ci si foarte buna, stabila, usor de instalat, administat sau upgradat ulterior. Sun Microsystems vrea sa transforme solutia MySQL intr-o plartforma pentru companii.</p></blockquote>
<p>Serverul de baze de date MySQL produs de compania MySQL ocupa aproximativ 80% din piata serverelor Web, un fapt bine cunoscut de altfel. Sun se asteapta sa dea lovitura cumparand MySQL prin integrarea serverului de baze de date in solutiile oferite de acestia, marind in acelasi timp canalele de distributie MySQL.</p>
<p>Avand in vedere cota de piata MySQL, se poate spune cu usurinta faptul ca aceasta tranzactie va schimba fata Internetului prin prisma impactului pe care il va avea aceasta tranzactie.</p>
<blockquote><p>&#8220;Cumparam astazi o solutie pentru baze de date care a fost aleasa de clientii din toata lumea cu o viteza extraordinara&#8221;, a spus Schwartz. &#8220;Titanii web-ului folosesc toti MySQL, banci, companii auto, toate firmele din Fortune 500 folosesc MySQL&#8221;, a adaugat el.</p></blockquote>
<p>Chiar nu mai am nimic de adaugat &#8230; speechless &#8230;</p>
<p><a href="http://www.mysql.com/news-and-events/sun-to-acquire-mysql.html" title="Sun to Acquire MySQL" target="_blank">Sursa 1</a> <a href="http://www.sun.com/aboutsun/pr/2008-01/sunflash.20080116.1.xml" title="Sun Microsystems Announces Agreement to Acquire MySQL, Developer of the World's Most Popular Open Source Database" target="_blank">Sursa 2</a> &#8211; oficiale</p>
<p><a href="http://www.bloombiz.ro/article--IT_C-Internet-Sun_a_cumparat_MySQL%3A_1_miliard_de_dolari--1336629.html" title="Sun a cumparat MySQL: 1 miliard de dolari" target="_blank">Sursa 3</a> &#8211; neoficiala</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/windows/sun-microsystems-a-anuntat-cumpararea-mysql.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Error</title>
		<link>http://www.saltwaterc.net/rant/error.html</link>
		<comments>http://www.saltwaterc.net/rant/error.html#comments</comments>
		<pubDate>Sat, 22 Dec 2007 01:08:35 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[Rant]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://saltwaterc.net/index.php/error/</guid>
		<description><![CDATA[
Credeam ca erorile de tipul celei prezentate in articolul de fata au murit odata cu sistemele de operare ale Microsoft care erau bazate pe DOS &#8230; sa zicem ca un Windows din familia NT ma contrazice &#8230;
PS: poate se prinde careva si ma lamureste si pe mine &#8230; asta dupa ce am ras cu patru [...]]]></description>
			<content:encoded><![CDATA[<p style="float: left; margin-right: 10px"><a href="http://saltwaterc.net/wp-content/error.png" title="Error(?!)" rel="lightbox-ms-error"><img src="http://saltwaterc.net/wp-content/error.thumbnail.png" alt="Error(?!)" /></a></p>
<p>Credeam ca erorile de tipul celei prezentate in articolul de fata au murit odata cu sistemele de operare ale Microsoft care erau bazate pe DOS &#8230; sa zicem ca un Windows din familia NT ma contrazice &#8230;<br />
PS: poate se prinde careva si ma lamureste si pe mine &#8230; asta dupa ce am ras cu patru guri pana m-am cracanat in momentul in care am dat de imaginea aceasta pe un forum &#8230;</p>
<p style="margin-top: 30px" align="center"><a href="http://saltwaterc.net/wp-content/blue_screen_demotivator.jpeg" title="BSoD - Failure at Failing" rel="lightbox-ms-error"><img src="http://saltwaterc.net/wp-content/blue_screen_demotivator.thumbnail.jpeg" alt="BSoD - Failure at Failing" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/rant/error.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8216;Automatic Restart&#8217; si &#8216;Lock Workstation&#8217;</title>
		<link>http://www.saltwaterc.net/windows/automatic-restart-si-lock-workstation.html</link>
		<comments>http://www.saltwaterc.net/windows/automatic-restart-si-lock-workstation.html#comments</comments>
		<pubDate>Thu, 13 Dec 2007 16:36:08 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://saltwaterc.net/tech/automatic-restart-si-lock-workstation.html</guid>
		<description><![CDATA[Aparent acesti doi termeni nu au multe in comun. Aparent. Citeam acum cateva zile pe un mailing list de o problema a unui sysadmin Windows: are o masina care trebuie sa copieze diferite chestii de colo-colo, dar aplicatia respectiva are nevoie de cont cu privilegii de administrator pentru a-si face treaba. Acum incepe distractia &#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>Aparent acesti doi termeni nu au multe in comun. Aparent. Citeam acum cateva zile pe un mailing list de o problema a unui sysadmin Windows: are o masina care trebuie sa copieze diferite chestii de colo-colo, dar aplicatia respectiva are nevoie de cont cu privilegii de administrator pentru a-si face treaba. Acum incepe distractia &#8230; daca in timpul zilei masina respectiva se afla sub supraveghere, in timpul noptii aceasta nu se afla &#8230; si nu, nu aici era problema. Problema era ca pentru a asigura continuitatea operatiilor, masina avea activata functia de auto-logon in contul respectiv cu privilegii de administrator. Nici pana aici nu este nici o problema &#8230; exista Windows+L care blocheaza o sesiune de logon si te trimite la Welcome Screen. Problema este ca in timpul noptii exista posibilitatea ca masina sa isi faca auto-update &#8230; si sa isi dea auto-restart.</p>
<p>De aici incepe si rant-ul personal. Ultimele doua auto-update-uri (efectuare in prezenta mea!) s-au ales cu urmatoarele:</p>
<p align="center"><a href="http://saltwaterc.net/wp-content/restart1.PNG" title="Update 1 + Auto Restart" rel="lightbox-update"><img src="http://saltwaterc.net/wp-content/restart1.thumbnail.PNG" alt="Update 1 + Auto Restart" /></a>    <a href="http://saltwaterc.net/wp-content/restart2.PNG" title="Update 2 + Auto Restart" rel="lightbox-update"><img src="http://saltwaterc.net/wp-content/restart2.thumbnail.PNG" alt="Update 2 + Auto Restart" /></a></p>
<p>Pe langa faptul ca imi este bagat pe gat un auto-restart &#8230; la aceste update-uri nici macar nu mi se oferea posibilitatea de a da &#8216;Cancel&#8217;. Sa fie de la faptul ca rulez sub <a href="http://saltwaterc.net/tech/de-ce-user-si-nu-admin.html" title="De ce USER si NU admin" target="_blank">USER</a>? Ideea e ca nenea care a gandit chestia asta da dovada de un amatorism aparte in ceea ce priveste gandirea. Stiu ca in viziunea UNIX utilizatorul nu este considerat de incredere &#8230; dar de acolo, pana a-i nega posibilitatea de a mentine masina in uptime atata vreme cat ii vrea madularul &#8230; este cale de mers. Si da, imi permit sa vociferez pentru ca umplu papucii unui client Microsoft multumit de unele aspecte ale sistemului pe care l-am cumparat fortat de politicile lor corporatiste prin care anumite chestii sunt strict legate de platforma Win32. Deci nu, nu merge sa imi vina sa imi cante cineva la masa pe aia cu: &#8220;nu il mai folosi&#8221;. Cea mai probabila replica o sa fie cea cu &#8220;go fuck a tree&#8221; urmata la 0.1cm de &#8220;go buy a Windows licence&#8221;.</p>
<p>Destula abatere de la subiect. Sa revenim la sysadminii nostrii. Problema cu restart-ul si cu auto-logonul este aceea ca logonul nu se poate face in stare blocata. Si nici nu exista nimeni care sa dea Win+L. Un screensaver care odata ce este blocat are un timeout minim de 1 minut, timp in care masina este vulnerabila la acces fizic, direct cu acces de administrator.  Nu trebuie sa fac desene ca sa se inteleaga in termeni de securitate ce inseamna aceasta. Solutia vine tocmai din Win32API si posibilitatile de scriptare ale Windows-ului (bune, rele, asa cum sunt, parerile sunt impartite). Nenea care a dat solutia sugera un VBS (Visual Basic Script). Eu sunt mai de &#8220;moda veche&#8221; si prefer batch scripting-ul. Ideea este ca la logon sa se ruleze la startup o chestie care sa blocheze automat sesiunea de desktop. Chestia aceea arata cam asa:</p>
<p><strong><em>rundll32.exe user32.dll,LockWorkStation</em></strong></p>
<p>Majoritatea utilizatorilor cu vechime cred ca deja se pravalesc pe jos de ras cand citesc astea &#8230; pentru ca este o chestie arhicunoscuta. Dar cum mie imi place sa despic firul in 4, o sa zic si ce anume face. runll32.exe este o aplicatie care executa DLL-uri pentru a le incarca in memorie, si a le face mai eficiente. user32.dll este binarul in care se afla implementata functia LockWorkStation, cea care este apelata in momentul in care se tasteaza Win+L. Se poate apela oricand, la orice ora, fie dintr-un script, fie bagand comanda respectiva la run sau in shell.</p>
<p>Personal as fi propus ca alternativa &#8230; dezactivarea auto-logonului &#8230; si rularea chestiei respective ca serviciu sub un cont de administrator (nu sub SYSTEM!).  Ar scuti de multe probleme &#8230; dar daca omul ar fi ales direct chestia asta &#8230; nu imi mai dadea mie ce sa scriu, si motiv sa fac MS bash-ul de mai sus &#8230; nu-i asa?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/windows/automatic-restart-si-lock-workstation.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rularea aplicatiilor in mod protejat accesului fizic</title>
		<link>http://www.saltwaterc.net/windows/rularea-aplicatiilor-in-mod-protejat-accesului-fizic.html</link>
		<comments>http://www.saltwaterc.net/windows/rularea-aplicatiilor-in-mod-protejat-accesului-fizic.html#comments</comments>
		<pubDate>Tue, 11 Dec 2007 17:04:01 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://saltwaterc.net/tech/rularea-aplicatiilor-in-mod-protejat-accesului-fizic.html</guid>
		<description><![CDATA[Stiu &#8230; stiu &#8230; nu am mai scris de o tona de vreme. De cand am schimbat jobul, in sensul ca acum sunt programator &#8230; sa zicem ca am avut mult mai putin timp la dispozitie in general, deci implicit a trebuit sa tai de unde se poate &#8230; din pacate si din actiunea de [...]]]></description>
			<content:encoded><![CDATA[<p>Stiu &#8230; stiu &#8230; nu am mai scris de o tona de vreme. De cand am schimbat jobul, in sensul ca acum sunt programator &#8230; sa zicem ca am avut mult mai putin timp la dispozitie in general, deci implicit a trebuit sa tai de unde se poate &#8230; din pacate si din actiunea de a posta pe blog. Cred ca am gasit balaria aia de directie spre care ma indreptam, deci o sa mai scot din mine niste balarii tehnice.<span id="more-296"></span></p>
<p>Stateam si ma gandeam zilele acestea la o metoda de a proteja anumite aplicatii de accesul neautorizat in ceea ce priveste accesul fizic la o masina. Problema sta cam asa: un sistem securizat priveste utilizatorul ca un potential risc &#8230; deci nu este o entitate in care se pune incredere (si bine face, dar despre asta in episodul urmator). Chiar daca utilizez deja sistemul sub un cont de user dupa cum va povesteam <a href="http://saltwaterc.net/tech/de-ce-user-si-nu-admin.html" title="De ce USER si NU admin" target="_blank">aici</a>, browserul, clientul de mail au master password care cripteaza parolele stocate in managerele proprii &#8230; sistemul prezinta o vulnerabilitate asupra accesului direct &#8230;</p>
<p>Se intampla sa vina prieteni pe la mine (din care unii evident &#8211; impart ocupatii asemanatoare), si cum nu am o masina dedicata pentru fiecare chestie in parte, sa zicem ca muzica canta de pe aceeasi masina de pe care fac development, browsing, si alte chestii. Momentan mi s-a pus pata pe cookie-uri, desi exista si alte date confidentiale care ar trebui sa ramana pe disk-urile proprii si numai acolo. Daca eu, ca detinator al sistemului &#8230; folosesc un model de securitate prin care eu nu sunt crezut fara autentificare ca superuser &#8230; de ce ar fi altii crezuti? Simplu &#8230; ei nu ar trebui sa fie, dar sunt. Browserul isi stocheaza profilul in directorul de &#8220;user data&#8221;. Chestia asta e valabila si sub *nix &#8230; deci vorbesc la cazul general, indiferent ca e vorba de /home/{user_name} sau de %systemroot%\Documents and Settings\{user_name}\Application Data (pe scurt %appdata%). Din moment ce browserul ruleaza sub un anume user &#8230; drepturile din &#8220;user data&#8221; sunt drepturile complete ale aceluiasi user. Simplu ca buna ziua. De ce nu mi-as crede proprii prieteni? Hmm &#8230; nu stiu &#8230; cred ca de cand am inceput sa citesc documentatie despre securitate &#8230; am devenit paranoic. In fine, sa continuia asupra ideei lansate.</p>
<p>Morala este simpla &#8230; se creeaza un utilizator cu acces limitat. Sub Windows (prin modelul prezentat in articolul anterior dedicat acestui fapt) este obligatoriu ca acesta sa aiba parola diferita de o parola nula pentru a permite utilizarea runas. Sub *nix este necesara prezenta loginului daca nu exista sudo, in caz contrar un <em>sudo su {user_name}</em> &#8211; ar loga un utilizator fara drept de login. Smecheria asta cu sudo am descoperit-o cand ma chinuiam sa dau drepturi de acces unui server HTTP (Apache 2) la un director SSH montat ca local prin sshfs. Solutia a fost sa montez directorul ruland comanda de mount de sub userul serverului &#8230; dupa ce in prealabil am dar acces mai larg la montare.</p>
<p>Dupa ce utilizatorul este creat &#8230; se muta user data-ul in directorul userului nou, se interzic drepturile de acces (citire) in ceea ce priveste fisierele utilizatorului (in cazul in care grupul/others au acces de citire la fisiere), iar aplicatia care se doreste a fi rulata protejat, se ruleaza folosind noul utilizator &#8230; astfel in momentul in care aplicatia este inchisa &#8230; datele sunt in siguranta. Ideea este simpla &#8230; punerea in aplicatie cere niste consum de taste in plus.</p>
<p>Apropo de paranoia care o ziceam mai sus &#8230; nu e 100% absurda. Au existat cazuri (da, la plural) cand din vina prietenilor mei, primeam acces la datele lor fara sa fac efort &#8230; mi se oferea un authentication_id (o metoda stupida de a autentifica calculand un hash obosit pentru a scuti utilizatorii unui site de actiunea de a tasta user+pass &#8211; si care ramane constant daca se schimba parola &#8211; deci algoritmul de generare este prost pentru ca nu stie de modificari, securitatea este precara datorita faptului ca un URL de acest gen este trimis in mod plain text prin retea), sau o usa de acces la chestii din sistem &#8211; si evident &#8211; nu ratam ocazia unui prank de zile mari. Motivul pentru care mi s-a pus pata pe cookie-uri care ar putea fi folosite pentru un prank la adresa proprie &#8230; motivul pentru care am varsat literele de mai sus &#8230; cu un singur catch &#8230; aplicatia nu trebuie sa ruleze ca utilzatorul respectiv in momentul in care se primesc vizite dupa modelul celui de mai sus (si chiar in general).</p>
<h1><a href="http://saltwaterc.net/disclaimer/"><span style="color: #000000">Disclaimer</span></a></h1>
]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/windows/rularea-aplicatiilor-in-mod-protejat-accesului-fizic.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Security Tab in Windows Explorer &#8211; Windows XP Home</title>
		<link>http://www.saltwaterc.net/windows/security-tab-in-windows-explorer-windows-xp-home.html</link>
		<comments>http://www.saltwaterc.net/windows/security-tab-in-windows-explorer-windows-xp-home.html#comments</comments>
		<pubDate>Mon, 03 Sep 2007 13:22:37 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://saltwaterc.net/tech/security-tab-in-windows-explorer-windows-xp-home.html</guid>
		<description><![CDATA[Windows XP Home Edition este un alt produs unde Microsoft s-a tras pe cur. Zic asta pentru ca a implementat niste limitari stupide, practic au castrat Professional. De data aceasta ma opresc la NTFS si drepturile de acces. NTFS este un file system care aduce un sistem de drepturi de acces destul de complex, iar [...]]]></description>
			<content:encoded><![CDATA[<p>Windows XP Home Edition este un alt produs unde Microsoft s-a tras pe cur. Zic asta pentru ca a implementat niste limitari stupide, practic au castrat Professional. De data aceasta ma opresc la NTFS si drepturile de acces. NTFS este un file system care aduce un sistem de drepturi de acces destul de complex, iar prin acest FS Microsoft intra in lumea buna a FS-urilor decente. Problema in Windows XP Home este faptul ca teoretic suportul pentru drepturile de acces este implementat in acest sistem, dar practic ruland de sub cont de user, uzabilitatea este pacoste. Solutii exista.<br />
<span id="more-247"></span><br />
Prima solutie in acest sens este una de-a dreptul barbara. Sunt genul care prefera terminalul numai cand nu am o solutie grafica mai rapida. Exista un mic utilitar in linie de comanda (Command Prompt), <strong>cacls</strong>, care poate seta drepturile de acces intr-un mod asemanator cu utilitarul <strong>chmod</strong> din *nix. Chiar mai mult, Microsoft a creat inca un utilitar, <strong>xcacls</strong>, disponibil gratuit pe site-ul lor, si care ofera acelasi grad de finete a setarilor precum interfata grafica din Professional.</p>
<p>A doua solutie e aia rapida (non-barbara). In mod normal nu este, deoarece tab-ul &#8220;Security&#8221; de la file properties lipseste cu desavarsire in XP Home. In XP Professional el exista, dar e ascuns de optiunea &#8220;Use simple File Sharing&#8221; din &#8220;Folder Options&#8221; care este bifata in mod implicit. Deci debifand chestia aia, tab-ul apare. Utilizatorii aia care nu au avut acei 200RON in plus pentru o licenta de Pro (asa ca mine, eram la limita bugetului atunci), nu pot incerca sportul asta. Aparent. Gugalind un pic dupa o solutie 3rd party am ajuns la concluzia ca nu este nevoie din moment ce solutia a fost oarecum oferita de Microsoft.</p>
<p>Povestea incepe asa: din moment ce Windows NT 5 (a se citi Windows 2000) fata de NT 4 este acelasi cacat impachetat altfel (cu update-urile de rigoare), chestia asta se intampla si in cazul Windows NT 5.1 (a se citi Windows XP) fata de Windows NT 5. Am pomenit de Windows NT 4 nu din pura intamplare, ci datorita un motiv anume.</p>
<p><a href="http://support.microsoft.com/kb/245216" title="Security Configuration Manager Tool" target="_blank">Security Configuration Manager Tool</a> este o scula de Windows NT 4 menita sa dea niste chestii in plus lui NT 4 SP4 si peste. Tot ce trebuie sa faceti este sa downloadati acest pachet. Daca interfata pune probleme de uzabilitate, o puteti face de <a href="ftp://ftp.microsoft.com/bussys/winnt/winnt-public/tools/scm/SCESP4I.EXE" title="M$ FTP" target="_blank">aici</a>. Iar daca FeTePeul M$ refuza sa dea ceva, o puteti lua si de <a href="http://saltwaterc.net/wp-download/SCESP4I.zip" title="Security Configuration Manager Tool">aici</a>, cu mentiunea ca eu am arhivat executabilul intr-un ZIP. Fisierul SCESP4I.EXE se executa pur si simplu pentru ca este o arhiva care se extrage singura. Nu se instaleaza nimic de acolo! Este recomandat sa se citeasca readme.txt. Dintr-un Windows Explorer cu privilegii de administrator se da un click dreapta pe fisierul setup.inf si se alege optiunea &#8220;Install&#8221; din meniul contextual. Restart la sfarsitul procesului de instalare, si la sfarsit veti avea un XP Home care are tab-ul &#8220;Security&#8221; la file properties. De aici configurarea drepturilor de acces devine o banalitate, cu mentiunea ca &#8220;banalitatea&#8221; presupune un anume nivel de cunostinte pentru a nu busi permisiunile.</p>
<h1><a href="http://saltwaterc.net/disclaimer/"><span style="color: #000000">Disclaimer</span></a></h1>
]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/windows/security-tab-in-windows-explorer-windows-xp-home.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>De ce USER si NU admin</title>
		<link>http://www.saltwaterc.net/windows/de-ce-user-si-nu-admin.html</link>
		<comments>http://www.saltwaterc.net/windows/de-ce-user-si-nu-admin.html#comments</comments>
		<pubDate>Sun, 02 Sep 2007 11:24:48 +0000</pubDate>
		<dc:creator>SaltwaterC</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://saltwaterc.net/tech/de-ce-user-si-nu-admin.html</guid>
		<description><![CDATA[Probabil ca este una din intrebarile care fiecare utilizator Windows ar trebui sa si-o puna. Incepand cu Windows NT, sistemul de operare al celor de la Microsoft a inceput sa implementeze o bruma de sistem de operare multi-user, deci implicit au aparut privilegiile pentru ca utilizatorii sa nu se mai plimbe de colo-colo si sa [...]]]></description>
			<content:encoded><![CDATA[<p>Probabil ca este una din intrebarile care fiecare utilizator Windows ar trebui sa si-o puna. Incepand cu Windows NT, sistemul de operare al celor de la Microsoft a inceput sa implementeze o bruma de sistem de operare multi-user, deci implicit au aparut privilegiile pentru ca utilizatorii sa nu se mai plimbe de colo-colo si sa faca <a href="http://en.wikipedia.org/wiki/FUBAR" title="FUBAR" target="_blank">FUBAR</a> sistemul. Pentru home use, incepand cu Windows XP SP2, Microsoft a inceput sa ofere in sfarsit ceea ce se doreste de la un asemenea sistem, chiar daca pe alocuri lasa de dorit.</p>
<p>Si totusi de ce USER? Simplu &#8230; pe vremea cand aveam vechea lista de messenger se intampla destul de des sa bornaie careva ca iar i-a fost virusat &#8220;pisiul&#8221;. Evident, lucrand in marea majoritate a timpului sub OS X sau ubuntu, mi se cam rupea de chestiile astea pentru ca nu ma loveam de astfel de probleme. Nu pentru ca sistemele respective nu ar fi virusabile, ci pentru ca nu sunt virusabile in mod implicit. Trebuie sa o faci cu intentie sau sa faci parte din clasa populatiei care este imbucurator de proasta. Pacatul Microsoft este faptul ca in mod implicit un sistem proaspat instalat da pe mana utilizatorului un cont cu drepturi de administrator. Marea masa a utilizatorilor s-au obisnuit cu ideea de a face ce le trece prin bostan chiar daca asta nu inseamna ca fac neaparat si bine, si Doamne fereste, nu ar depune eforturi intelectuale pentru remedierea situatiei. Gravitatea provine din faptul ca un virus rulat din &#8220;admin&#8221; se va instala ca &#8220;admin&#8221;, deci are acces deplin la anumite resurse care ar trebui sa fie protejate, si fara de care ar fi o simpla chestie inutila care nu ar &#8220;virusa&#8221; nimic. Si asa ajungem la aia care bornaiau mai sus ca au fost virusati.<br />
<span id="more-239"></span></p>
<p>Pomeneam mai de mult pe forumuri ca modul in care este folosit un sistem de operare sau distributie face diferenta dintre user si [l]user (aka admin cu drepturi depline), pentru ca unii nu pricep ca utilizatorul este chestia care utilizeaza computerul, in timp ce administratorul &#8230; administreaza si cand nu este nevoie, nu se foloseste. Iar prin asta ma refer la privilegii, nu la persoane, pentru ca pot sa fie una si aceeasi. Sincer am fost si eu in categoria [l]user pana sa ma impinga o chestie de la spate ca sa imi fac lucrarea de diploma din securitatea de Windows. Deci am devenit user. Chiar daca in toata viata mea sub Windows am avut vreo doua infectii, precaut fiind din fire, sa zicem ca un antivirus oricat de bun ar fi el, nu are o rata de detectie de 100%. Deci de ce sa se lupte direct impotriva cauzei, cand se poate lupta folosind metode inteligente: folosind cel mai mic privilegiu, virusul nu se va putea instala. Antivirusul devine un accesoriu care poate sa fie utilizat mai rar, eventual sa fie folosit doar ca scanner la nevoie, contrar utilizarii lui uzuale, si anume aceea de scanner real-time care seaca sistemul de resurse. Din pacate aici se apeleaza la inteligenta utilizatorului. Din pacate pentru ca lumea e plina de prosti, si in acelasi timp tot mai multi copii prosti au acces la computer.</p>
<p>Fac o paranteza despre antivirusi aici. Din moment ce am dat banii pe o licenta de Windows, nu concep sa dau banii si pe un produs ce ar trebui sa apere produsul achizitionat, atata timp cat problema provide din interiorul lui, datorita proastei implementari a ideii de securitate. Zi asta chiar daca Windows Vista a inceput sa miste ceva in acest sens, dar inca e in spatele sistemelor UNIX-like, si oricum nu as mai da banii pe inca o licenta. Deci am folosit chestii free/freeware. Momentan recomand: <a href="http://www.free-av.com/antivirus/allinonen.html" title="Avira AntiVir Personal Edition" target="_blank">Avira AntiVir Personal Edition</a>, <a href="http://free.grisoft.com/" title="AVG Free" target="_blank">AVG Free</a>, fix in ordinea asta, cu mentiunea ca Avira are rata de detectie mai buna, in timp ce AVG nu e atat de insetat dupa resurse. Ar mai fi de mentionat un scanner freeware, componenta a unui antivirus care deasemenea are si versiune comerciala, <a href="http://www.emsisoft.com/en/software/download/" title="a-squared Free" target="_blank">a-squared Free</a>.</p>
<p>Solutia problemelor este simpla. Am pus poze pentru ca pe astea le pricepe toata lumea &#8230;</p>
<p align="center"><a href="http://saltwaterc.net/wp-content/user-1.png" title="Control Panel" rel="lightbox-user"><img src="http://saltwaterc.net/wp-content/user-1.thumbnail.png" alt="Control Panel" /></a> <a href="http://saltwaterc.net/wp-content/user-2.png" title="De unde se face userul" rel="lightbox-user"><img src="http://saltwaterc.net/wp-content/user-2.thumbnail.png" alt="De unde se face userul" /></a></p>
<p align="center"><a href="http://saltwaterc.net/wp-content/user-3.png" title="Numele utilizatorului" rel="lightbox-user"><img src="http://saltwaterc.net/wp-content/user-3.thumbnail.png" alt="Numele utilizatorului" /></a> <a href="http://saltwaterc.net/wp-content/user-4.png" title="Setarea permisiunilor si crearea contului" rel="lightbox-user"><img src="http://saltwaterc.net/wp-content/user-4.thumbnail.png" alt="Setarea permisiunilor si crearea contului" /></a></p>
<p>Acestia sunt niste pasi usor de urmat de catre oricine. Problemele care intervin sunt acelea de uzabilitate: cum instalez un program, cum folosesc un program care necesita privilegii mai mari, cum modific o setare de sistem care poate fi modificata doar de catre administrator, etc. &#8211; intrebari pe care trebuie sa si le puna oricine.</p>
<p>Primele doua situatii descrise mai sus au o solutie relativ simpla. In momentul in care se ruleaza de sub cont de user, in meniul contextual (click dreapta pe fisierul executabil sau pe shortcut) apare optiunea &#8220;<strong>Run as&#8230;</strong>&#8220;. Folosind aceasta functie, se va putea rula aplicatia respectiva cu privilegiile unui cont diferit, deci se vor putea folosi drepturi administrative la nevoie pentru aplicatiile de instalare, sau pentru aplicatiile care necesita privilegii superioare.</p>
<p>Managementul fisierelor poate deveni problematic din moment ce file managerul nu mai are drepturi depline. Exista doua solutii.</p>
<p>1) &#8220;<strong>Run as&#8230;</strong>&#8221; cu drepturi de administrator la Internet Explorer. Tastand in bara de adresa o locatie locala, spre exemplu C:\, se va observa ca acesta o sa arate precum Windows Explorer.</p>
<p>2) Metoda mea preferata datorita faptului ca are mai multe avantaje este aceea de a lansa Windows Explorer cu drepturi de administrator. In mod normal aceasta nu este posibila fara niste modificari. In primul rand trebuie sa se permita lansarea lui explorer.exe ca proces separat. In practica chestia asta e mai usor de facut decat ceea ce pare in momentul in care se citesc aceste randuri. Trebuie doar sa intrii in contul de aministrator sub care se doreste sa se ruleze explorer.exe, se deschide Windows Explorer -&gt; Meniul &#8220;Tools&#8221; -&gt; Item-ul &#8220;Folder Options&#8221; -&gt; Tab-ul &#8220;View&#8221; -&gt; se bifeaza optiunea &#8220;Launch folder windows in a separate process&#8221;. Odata ce se face aceasta se poate iesi din admin. Chestia asta se poate face si folosind metoda descrisa la 1) in loc de login in admin. La alegere. Lansarea se face cel mai simplu din linie de comanda cu Start -&gt; Run (sau combinatia de taste Win+R), unde se tasteaza urmatoarea comanda: <strong><em>runas /user:Admin explorer.exe</em></strong>, unde &#8220;Admin&#8221; este numele exact al contului de administrator din sistem. Spre exemplu, in pozele de mai sus, la mine e <em>SaltwaterC</em>. Pentru a nu repeta de multe ori aceasta comanda, se poate crea un mic script care sa automatizeze procesul. Acelasi &#8220;Run&#8221; ca in situatia de mai sus -&gt; notepad, iar ca text se pune acolo:</p>
<blockquote><p>@echo off<br />
cls<br />
title Explorer as Admin<br />
runas /user:SaltwaterC explorer.exe<br />
exit</p></blockquote>
<p>unde SaltwaterC se inlocuieste cu numele administratorului vostru. Se salveaza fisierul ca script, nu ca fisier text, deci folositi o denumire gen admin_explorer.cmd, iar acel cmd din coada numelui este esential. Daca fisierul rezultat are iconita precum fisierele text normale, inseamna ca nu a fost salvat cum trebuie. De fiecare data cand este nevoie de Windows Explorer cu privilegii superioare, executati scriptul creat dupa metoda descrisa mai sus.</p>
<p>Acestea fiind spuse, chiar daca la inceput este dificil, sistemul poate deveni unul mult mai sigur si rezistent la virusare.</p>
<p><strong>Atentie!</strong> Rularea Windows Explorer cu drepturi administrative genereaza urmatoarea chestie: din moment ce explorer.exe este system shell, orice aplicatie lansata din instanta de Explorer cu privilegii administrative va rula deasemenea tot cu privilegii administrative, inclusiv aplicatiile care vor fi lansate cand se deschid documente, spre exemplu Office sau HTML, deci mare atentie pentru ca exista riscul de virusare in acest caz. Este recomandat ca acest shell sa fie lansat doar pentru activitati administrative gen instalare de aplicatii, modificari in sistem, sau accesarea de fisiere protejate.</p>
<h1><a href="http://saltwaterc.net/disclaimer/"><span style="color: #000000">Disclaimer</span></a></h1>
]]></content:encoded>
			<wfw:commentRss>http://www.saltwaterc.net/windows/de-ce-user-si-nu-admin.html/feed</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
	</channel>
</rss>
