Лед тронулся, сезон открыт!

14 Comments

Незнаю где как погода, но вчера-сегодня у нас открыли мото сезон. Сегодня несколько кружков навернул вот на таком аццком самопале-оппозите, бывшем толи днепре толи урале.Прохладно конечно, но это пустяки ))
Фотка аццкого оппозота

Даже задняя есть ))
P.S. И как назло, сегодня снег пошел, ну ептыть…

Градиенты на CSS 3

6 Comments

Скоро, скоро он придет и всем вебмастерам станет жить легче. Тени для текста и круглые уголки уже есть, теперь вот появилась градиентная заливка цветом. Фишка крайне полезная, у многих сайтов есть градиенты, но если раньше надо было колдовать гиф-полосками шириной в 1пиксель, просто широкими картинками в шапку, то теперь можно сделать все легко и просто. Видно только в продвинутых браузерах

#linearBg1 {
    height: 100px;
    background-color: #1a82f7;
    background-image: -moz-linear-gradient(100% 100% 180deg, #2F2727, #1a82f7) !important;
    background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#1a82f7), to(#2F2727)) !important;
    background-image: url(images/linear_bg_1.png);// fallback image
}
 

И слева направо

#linearBg2 {
    height: 100px;
    background-color: #1a82f7; /* fallback color */
    background-image: url(images/linear_bg_2.png); /* fallback image */
    background-image: -moz-linear-gradient(100% 100% 90deg, #2F2727, #1a82f7);
    background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#1a82f7), to(#2F2727));
}
 

И сверху вниз

#radialBg {
    width: 100px;
    height: 100px;
    background-image: url(images/radial_bg.png);// fallback image
    background-position: center center;
    background-image: -moz-radial-gradient(center 45deg, circle closest-corner, #2F2727 0%, #1a82f7 100%);
    background-image: -webkit-gradient(radial, center center, 10, center center, 80, from(#2F2727), to(#2F2727));
}
 

И по кругу
Как угодно можно заливку делать.
Совместимость? Ну, для старых браузеров в цсс прописана картинка, если не поймет заливку то выведет ее. Есть и другое решение – по принципу кто не с нами, тот против нас. У кого браузер не понимает таких красот, тому сайт не показывать )) Или вообще завешивать его ))
Вот тут подсмотрел.

Заливка файлов на радикал PHP

10 Comments

Если нет желания забивать сервер картинками, то данный скриптец поможет. Он грузит картинку с веба (урл) на радикал, возвращает адрес картинки на радикале.

$postdata = "upload=yes&F=&URLF=".$imagelink."&O=yes&M=640&JQ=85&J=yes&IM=7&VM=180&R=0&VE=yes&V=Увеличить&X=&FS=";
$page = FetchUrl("http://www.radikal.ru/action.aspx", $postdata, NULL, NULL, NULL);
preg_match("!id=\"input_link_1\" value=\"(.*?)\"!si", $page, $imageUrl);
$imageUrl = $imageUrl[1];

FetchUrl моя универсальная функция для курла, я ее под все подряд юзаю, поэтому там много левого кода. При желании можно поудалять половину.

function FetchUrl($url, $postvars, $timeout, $ref, $blank){
 sleep($timeout);                         
 echo @date("r")." fetching $url\r\n";              
 $ch = curl_init();   
 if(isset($postvars)){
 echo @date("r")." $postvars\r\n";                    
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $postvars);
 }
//        curl_setopt($ch, CURLOPT_PROXY, $proxy);
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);       
//        curl_setopt($ch, CURLOPT_HEADER, true);           
 curl_setopt($ch, CURLOPT_TIMEOUT,15);               
 curl_setopt($ch, CURLOPT_ENCODING, 'gzip');         
 curl_setopt($ch, CURLOPT_COOKIEJAR, "c1.txt");    
 curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.1.6) Gecko/20091201 SUSE/3.5.6-1.1.1 Firefox/3.5.6 FirePHP/0.3");     
 curl_setopt($ch, CURLOPT_COOKIEFILE, "c1.txt");     
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);  
 curl_setopt($ch, CURLOPT_URL, trim($url));
 curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
 curl_setopt($ch, CURLOPT_REFERER, $ref);                                                                  
 $result = curl_exec($ch);     
 if($blank == "1"){    
     $result = preg_replace("/\n/", "", $result);
     $result = preg_replace("/\r/", "", $result);
 }
 curl_close($ch);                                                                                        
 return $result;                                                                                              
 }

Breadcrumbs в выдаче гугла

8 Comments

Красиво смотрится. Интересно, это для отдельного сайта так сделали или можно настроить для любого?

Одно имя категории, разные родители.

8 Comments

Полночи бился с этим тупняком.

Суть – есть сайт, две основных категории – Ищу работу и Требуются. В них подкатегории. Подкатегории одинаковые, потому что слесари могут и требоваться и искать работу.

Постим туда через xml-rpc. Например, Иванов Иван, ищет слесаря в свою фирму. Т.е. категория слесарь родителя Требуются. Но при постинге не указывается родитель, указывается только имя категории – слесарь. И постится в тот родитель, который создан раньше. В моем случае Иванов Иван уже не ищет слесаря, а сам хочет им поработать.

Почитал доки по xml-rpc, ничего так и не нашел. Выход нашел, но не очень красивый.

Вот как тут быть?

Добавить postmeta через xml rpc

2 Comments

Или рожденные в муках познания.  XML-RPC как-то не очень дружит с документацией, никаких особо внятных вещей по поводу формата postmeta я так и не нашел.  И если как ставить какой-нибудь excerpt еще можно догадаться:

$content_struct['mt_excerpt'] = "string";

то вот до выставления даты можно долго доходить:

$date = gmdate("Ymd\TH:i:s",strtotime("+".rand(0,20)." day +
".rand(0,20)." hour +".rand(0,60)." minute"));
$content_struct['dateCreated'] = new IXR_Date($date);

В примере дата на 20 дней вперед-назад разносится.

Custom fields выставляются так:

$custom_fields = array(
     array(
                'key'  => 'price',
		'value'	 => 'val1'
	),
);
$content_struct['custom_fields']= $custom_fields;

Реактивный гугля ))

20 Comments

Не успел пост написать, а гугля уже сьел и отранжировал. Атас просто.

Как узнать статус процесса по pid

1 Comment

Вся инфа о процессе лежит тут:

cat /proc/PID/status

Покажет что-то типа этого:

Name:	gedit
State:	S (sleeping)
Tgid:	787
Pid:	787
PPid:	1
TracerPid:	0
Uid:	500	500	500	500
Gid:	100	100	100	100
FDSize:	64
Groups:	33 100 113
VmPeak:	  306596 kB
VmSize:	  306592 kB
VmLck:	       0 kB
VmHWM:	   37748 kB
VmRSS:	   37744 kB
VmData:	   36448 kB
VmStk:	     116 kB
VmExe:	     652 kB
VmLib:	   22848 kB
VmPTE:	     560 kB
Threads:	1
SigQ:	0/15992
SigPnd:	0000000000000000
ShdPnd:	0000000000000000
SigBlk:	0000000000000000
SigIgn:	0000000001001000
SigCgt:	00000001800004f0
CapInh:	0000000000000000
CapPrm:	0000000000000000
CapEff:	0000000000000000
CapBnd:	ffffffffffffffff
voluntary_ctxt_switches:	217142
nonvoluntary_ctxt_switches:	222001

Например, надо выдернуть текущее состояние скрипта:

$status = cat /proc/PID/status | grep State | awk {'print $3'}

$status будет (sleeping)

Вышла Mandriva Linux 2012 alpha 2

4 Comments

Клепают мандриву прям по часам, что в том году 7 февраля уже ставил, что в этом году. Молодцы, что тут еще сказать. Глянул чейнджлог, допиливают вовсю третий гном, который походу в spring версии уже будет. Еще усиленно пихают везде Zeitgeist, как по мне так тулза не очень, зачем надо смотреть, что я вчера слушал или какие документы открывал. Десктопный менеджер теперь наутилус, метасити убрали.

Все подробности тут

А php будет в cpp компилится

16 Comments

Фейсбук решил так свою проблему с нагрузкой – заюзал HipHop и получил расширение нагрузки до 400 миллиардов показов страниц в месяц.

Because of this, it’s been challenging to scale Facebook to over 400 billion PHP-based page views every month.

HipHop ретранслирует пхп в плюсы, потом компилит бинарники.
Все подробности на оффблоге
Может скоро и не надо будет си, на пхп накатал, код ретранслировал и порядок? ))

Older Entries