сряда, април 29, 2009

Новините днес

По принцип не чета новинарски сайтове, сега си припомних защо.

Вижте това:
През май по вода
Обикновена новина за времето. Дааа, ама не, КОСТОВ е виновен !
Вижте защо:


Коментари:
1) На английски звучи така "Дъъти мади уйедър" !!!!
2)Ще е хубаво времето супер
3)абитуриентите ще се къпят, няма как. 1-2-3-4-5-6-7-8-9-10-11-12 еееееееееееее
4)Костов е виновен.
5)Кога ще дойде хубавото време? Моля, съжалете се над нас!
6)Ти се побърка с тоя Костов....
7)Тоя Костов ти е само в глават.хахаха,Костов това,Костов онова явно го праиш за кеф,ама май е вече време да спреш щото ставаш банален вече.Сам си прави изводите.
8)Виновен е Станишев, който е накарал Костов да го направи. Това е, защото Станишев е бил изнервен, че любовникът му Джулио Суге е бил убит.
9)K O S T O V N A V L A S T ! ! !
10)DA MU MISLQT ABITURIENTITE... :)

След това невероятно мозъчноубийствено окровение, искам да попитам, сега Костов ли е виновен или Станишев ? И това означава ли, че само абитуриентите ще му мислят ако Костов дойде на власт ?
Политиката е сложно нещо.
За наша радост dnes.bg не се ограничават само с политика, други интересни заглавия са:
Замерят плевенски лисици с ваксини против бяс

Цъ, цъ, цъ вместо да ги лекуват ...
Гошко и Тошко нямаше кой да ги гушка зимата

И мене нямаше кой да ме гушка зимата, ама оплаквам ли се ?
Станишев в Кремъл – от "разпни го" до... "разпни го"

А Костов ?


Това са те - българските online медии. От тях ли затъпяваме или те затъпяват заради нас, не знам ?

Писане на PHP конзолни скриптове


Успях хубаво да си счупя Linux-а, опитвайки се да инсталирам една операционна система, която упорито твърди, че не иска да се инсталира на PC. След някои хора - потоп, след тая ОС(която не искам да споменавам) - reinstall :)
Та, успях да си спася htdocs, но понеже не съм от най-умните забравих да си копирам конфигурационните файлове. В следствие на това като си връщам нещата обратно трябва да си направя наново и всичките виртуални хостове.
За да се добави такъв хост трябва да редактирате 2 файла и да се направи една директория, което си е работа, а и когато трябва да го направиш много пъти, нещата не придобиват никак приятен вид.
И понеже съм си originaly мързелив реших да го направя със скрипче.
btw, винаги съм твърдял, че е по-добре да загубя 20 минути в писане на някаква глупост, отколкото да губя 10 правейки го на ръка и затъпявайки :)
Само да вметна, че пиша уеб шитни и хич не се радвам когато трябва да се правя на Linux администратор и за това ползвам xampp (в случай, че се зачудите за странните пътиша). Един такъв админ ще се хване и ще напише скрипта на bash и той вероятно ще изглежда нещо като това:


#!/bin/bash

#some backup
cp /opt/lampp/etc/extra/httpd-vhosts.conf /opt/lampp/etc/extra/httpd-vhosts.conf.backup
cp /etc/hosts /etc/hosts.backup

# creating some stupid vars :P
while read line
do
file="${file}${line} \n" ;
done < "/etc/hosts";

new_host="127.0.0.1 ${1} \n";
new_vhost="
\n
\t DocumentRoot /opt/lampp/htdocs/${1}/ \n
\t ServerName ${1} \n
\n \n";
new_dir="/opt/lampp/htdocs/${1}/";

#creating new virtual host
mkdir $new_dir;
chmod 755 $new_dir;
echo -e $new_vhost >> /opt/lampp/etc/extra/httpd-vhosts.conf
echo -e $new_host > /etc/hosts;
echo -e $file >> /etc/hosts;

#restarting the server
/opt/lampp/lampp restart

За да добавите нов виртуален хост просто изпълнявате:
./addvhost.sh test

И скрипта ще свърши останалото за да се добави хост с име "test".
Колкото и да е powerfull bash-а, не пиша по цял ден на него и примерно тоя скрипт ми отне около 15 минути, основно защото половината време трябваше да чета документация.
Ако сте като тъп уеб дИвелъпър като мене и php ви е по-удобен, вече (то не е много отскоро ама айде) можете да напишете същото и на php.
Нещо като това:

#!/opt/lampp/bin/php
$param = $_SERVER['argv'][1];

//create backups
copy('/etc/hosts', '/etc.hosts.backup');
copy('/opt/lampp/etc/extra/httpd-vhosts.conf', '/opt/lampp/etc/extra/httpd-vhosts.conf.backup');

// set some vars
$hosts_file = file_get_contents('/etc/hosts');
$vhosts_file = file_get_contents('/opt/lampp/etc/extra/httpd-vhosts.conf');

$new_host = "127.0.0.1 \t $param \n";
$new_vhost = "
\n
\t DocumentRoot /opt/lampp/htdocs/$param/ \n
\t ServerName $param \n
\n \n";
$new_folder = "/opt/lampp/htdocs/$param/";

// creating vhost
mkdir("/opt/lampp/htdocs/$param/", 0755);

$fh = fopen('/etc/hosts', 'w');
fwrite($fh, $new_host);
fwrite($fh, $hosts_file);
fclose($fh);

$fh = fopen('/opt/lampp/etc/extra/httpd-vhosts.conf', 'w');
fwrite($fh, $vhosts_file);
fwrite($fh, $new_vhost);
fclose($fh);

// restart the server
$output = shell_exec('/opt/lampp/lampp restart');
echo $output;
?>

За да си свърши работа скрипта иска да му кажете нещо от типа:
./addvhost.php test

Както виждате нищо страшно. Върши абсолютно същата работа и не съм засичал, но ми се струва, че ми отне половината от времето на bash-a.

Друго важно уточнение е, че тези скриптове са писани само за да покажат как хипотетично биха могли да станат нещата, вършат работа, но аз като потребител не бих ги използвал, най-малкото защото не дават възможност за допълнително настройване на виртуалния хост и няма абсолютно никаква проверка дали нещо по време на изпълнението не се е омазало. :)

За добро или лошо php се мъчи да излезе от сървърната среда и да се превърне в пълноправен език за административни скриптове и дори desktop приложения(phpgtk).
Наскоро гледах някъде в нета сравнение на езиците за програмиране и корабите. Примерно java беше описана като огромен транспортен кораб, който върши много неща, но не е много приятен за каране.
Там php беше сравнен с малък риболовен кораб - малък, бърз и върши точно това, за което е направен.
За мен лично така и трябва да си останат нещата, но нищо не пречи на php да се пробва при десктоп приложенията.

edit: За времето за което написах тези скриптове и този пост, можеше да си свърша работата, но нямаше и да е наполовина по-забавно :)