Новый инструмент для фотомаркетинга

У меня отличная новость для тех организаторов ивентов которые хотят увеличить свою аудиторию в социальных сетях. Вы планируете конференцию, вечеринку, спортивный марафон? Тогда вот отличный рецепт для вас. Создайте страничку меропрития в http://mozaic.pics Печатайте специальные мозаичные коды. На каждом коде есть инструкция как участник может получить все фотки на которых будет замечен этот код. Размещаем эти штуки на флайерах участников. (Можно наклеить на футболки, на браслеты и т.д. главное чтобы они были заметны на фото)
В течении ивента или после него, загружайте фотографии в mozaic. Готово, участники теперь смогу опубликовать все фотографии со своим участием в социальные сети.

Интересно – заходим и пробуем – автоматическое определение участников на фотографиях

Yii Google images widget

Даный виджет поможет отобразить на странице изображения полученые в результате поиска с помощью сервиса Google Images Search

Для работы данного виджета Вам не нужно вносить никаких дополнительных настроек

Continue reading Yii Google images widget

Обновляем корейский BlackVue DR400G-HD и меняем язык.

Приобрел себе недавно этот девайс на Ebay. Приехал он с корейской прошивкой версии 1.038 соответственно голосовые подсказки на корейском языке.
На офф сайте на данный момент лежит последняя 1.040 – прошивка с англоязычными подсказками. Прошив ее я обнаружил что регистратор не хочет включаться заявив что версия прошивки и программного обеспечения не совпадает. “version information is different” .
Погуглив оказалось что с версии 1.038 регистраторы предназначенные для Кореи не прошиваются на отличные от корейского языки. Continue reading Обновляем корейский BlackVue DR400G-HD и меняем язык.

Bitcoin биржа Mt.Gox – взломана

Японская биржа торгующая bitcoin была взломана. Как пишет администрация злоумышленники получили доступ ко всей базе в том числе к зашифрованным паролям. Всем пользователям рекомендовано сменить пароли (в случае если они используют одинаковые) в других сервисах.

https://support.mtgox.com/entries/20208066-huge-bitcoin-sell-off-due-to-a-compromised-account-rollback

Fully ajax website with Yii – Part 1

This article will be suitable for who made fully ajax site like  Gmail with best PHP Framework – Yii.
Main requirements are:

  1. All pages should be loaded via ajax.
  2. All forms should be submitted via ajax.
  3. Pages should be reachable by search engines.
  4. History support.
  5. Window title support
  6. Minimal additional code.

Here  is my solution.
I get for example simple web application which you can made with help of yiic utility.

cd /home/www/mywebsite
wget http://yii.googlecode.com/files/yii-1.1.7.r3135.tar.gz
gunzip yii-1.1.7.r3135.tar.gz
tar -xvf yii-1.1.7.r3135.tar
mv yii-1.1.7.r3135/framework/ ./
php framework/yiic.php webapp ./

That is it your application has been created!

Add this code to the protected/views/layout/main.php file before  </head> tag.


getClientScript();
  		$cs->registerCoreScript('jquery');
  		$cs->registerCoreScript('bbq');
?>
  	
  	registerScript('applychanges', $script, CClientScript::POS_HEAD);
?>	

  	registerScript('loading-indicator', $script, CClientScript::POS_READY);
?>



registerScript('ajaxlinks-and-forms', $script, CClientScript::POS_READY);
?>

Next code should be added after <body> tag

We’ve jus added javascript code which will handle all client side job
Then we extend Base controller class “Controller”.

protected/componens/Controller.php; Add new methods below:

public function ajaxRender($file, $data=array()) {
		
		$data['title'] = CHtml::encode($this->pageTitle);			
		header('Content-type: text/x-json');
		echo CJSON::encode($data);
		Yii::app()->end();

	}
		
	public function render($file, $params = array(), $data=array()) {
		
		if(Yii::app()->request->isAjaxRequest){

			if(Yii::app()->user->hasFlash('updatedata')) {
				$flashdata = Yii::app()->user->getFlash('updatedata');		
				$data = $data + $flashdata;	
			}
			
			
			$data['#content'] = parent::renderPartial($file, $params, true);
			$data['title'] = CHtml::encode($this->pageTitle);
			
			header('Content-type: text/x-json');
			echo CJSON::encode($data);
			Yii::app()->end();
			
		} else {			
			echo parent::render($file, $params, true);	
		}	
	
	}
	
	public function redirect($url) {
		
		if(is_array($url) && isset($url[0]))
			$url = $url[0];
	
		if(Yii::app()->request->isAjaxRequest){
			
			$data = array();
			
			if(Yii::app()->user->hasFlash('updatedata')) {
				$flashdata = Yii::app()->user->getFlash('updatedata');		
				$data = $data + $flashdata;	
			}
			
			$data['#content']= '';
			
			
			
			header('Content-type: text/x-json');
			echo CJSON::encode($data);
			Yii::app()->end();
				
		} else {
			parent::redirect($url);
		}
	}
	
	public function refresh() {
		if(Yii::app()->request->isAjaxRequest){

			$data = array();
			
			if(Yii::app()->user->hasFlash('updatedata')) {
				$flashdata = Yii::app()->user->getFlash('updatedata');		
				$data = $data + $flashdata;	
			}
			
			
			$data['#content']= '';
			
			header('Content-type: text/x-json');
			echo CJSON::encode($data);
			Yii::app()->end();
			
		} else {
			parent::refresh();
		}
	}

Then you have to override some Request methods to support CWebUser redirects:

Put content below to new file with name protected/components/EHttpRequest.php

request->isAjaxRequest){

			$data = array();
			
			if(Yii::app()->user->hasFlash('updatedata')) {
				$flashdata = Yii::app()->user->getFlash('updatedata');		
				$data = $data + $flashdata;	
			}
			
			$data['#content']= '';
			
			header('Content-type: text/x-json');
			echo CJSON::encode($data);
			
			Yii::app()->end();	
		} else {
			parent::redirect($url);
		}
	}
	
	public function refresh() {
		if(Yii::app()->request->isAjaxRequest){

			$data = array();
			
			if(Yii::app()->user->hasFlash('updatedata')) {
				$flashdata = Yii::app()->user->getFlash('updatedata');		
				$data = $data + $flashdata;	
			}
			
			
			$data['#content']= '';
			
			header('Content-type: text/x-json');
			echo CJSON::encode($data);
			
			
			Yii::app()->end();	
		} else {
			parent::refresh();
		}
	}
}

Set new class name for request component in your main config protected/config/main.php

It should looks like this

  .... 
  'components'=>array(
		'user'=>array(
			// enable cookie-based authentication
			'allowAutoLogin'=>true,
		),
		
		'request'=>array(
                     'class'=>'EHttpRequest',
               ),

   ....

That’s all. Now you have full ajax simple web application.
Offcourse it has some limitations and issues, further I’ll extend this article.

P.S. I have forgotten to say about styles.
Just add these lines to your css file.

#loading {
	position:fixed;
	padding:3px;
	background:#80B646;
	color:#fff;
	display:none;
	z-index:999;
	right:0;
	top:0;
}
#loading.activity {
	display:block;
}

Привет Solr, Sphinx – пока, пока!

Недавно для одно из своих проектов понадобился полноценный поиск. В первую очередь я обратился к Sphinx но вскоре был вынужден от него отказаться в пользу поискового движка Solr от Apache Software Foundation

Основные преимущества (для меня)

  • Solr поставляется с более либеральной лицензией. (чтобы изменить функционал или использовать Sphinx как часть коммерческого приложения нужно покупать коммерческую лицензию)
  • Solr не нуждается в предоставлении уникального идентификатора для документа. Для Sphinx нужен числовое уникальное значение.
  • В Solr тоже есть посдветка искомых слов.
  • В Solr также есть поддержка русской морфологии, подсветка искомого запроса в результатах поиска.
  • Для Solr не проблема удалить единичный или набор документов которые просто подходят определенному критерию поиска. Например можно все результаты поиска по определенному слову. В случае со Sphinx для этого нужно проводить переиндексацию. Также в единичном порядке можно добавить документы в индекс.
  • В Solr встроена поддержка проверки орфографии и утилита позволяющая не использовать дубликаты документов в поиске.
  • Solr может индексировать документы такие как Microsoft Word, PDF и другие
  • Solr работает везде где есть Java
  • Для Solr есть отличное PHP extension под PHP http://www.php.net/manual/en/book.solr.php Позволяющее проводить поиск, добавлять, удалять документы

Думаю преимуществ достаточно чтобы выбрать Solr как поисковый движок для Вашего сайта.

Кратко о установке и использовании. На примере Freebsd.

Обновляем порты  (portsnap fetch, portsnap extract, portsnap update) или любым другим удобным для Вас способом

cd /usr/ports/textproc/apache-solr
make install clean

В директории порта,  появится папка work в которой будет  готовый к работе дистрибутив. Переместим его в более удобное для работы место.

Далее.

cd apache-solr-1.4.1/example

java -jar start.jar

Все, Solr запускается.

Не пользуйтесь Яндекс.Деньгами

Вчера волей случая пришлось завести себе счет. Я и до этого был настроен против Яндекса, но это уже ни в какие рамки не лезит. В конце концов по большому счету Яндекс.Деньги абсолютно не предназначены для не граждан РФ. О чем можно догадаться только начав пользоваться этой системой.

Чтобы вывести ЯД на вебмани через сам Яндекс нужно идентифицироват свой счет в ЯД а также иметь Атестат не ниже формального для Webmoney. Ваши данные (фамилия,имя) должны совпадать для обоих акаунтов. Комиссия 4.5%!

Пройти идентификацию оказывается не так уж и просто. Интересная информация по этому поводу здесь

Также можно вывести с помощью сервисов http://yad.co.ua/ и http://www.yd.dp.ua/ что я и попытаюсь сделать, можете посмотреть с какими потерями я это сделаю. Но это все ничего. Ведь оказывается Вы вообще можете остаться без своих денег в любой момент. (см ссылку выше)

Вопрос, к чему этот пиар, рекламные кампании в Украине если полный спектр услуг и гарантий предоставляют только жителям РФ.

PS. БАГИ ЯНДЕКС.ДЕНЕГ

Проходил регистрацию, указал свой мобильный номер МТС УКРАИНА, СМС с кодом пришла почти сразу.

После регистрации захожу в настройки:

Мой совет – избегать использования Яндекс.Денег не гражданам России.

Iecollection

Каждый кто верстал  знает как тяжело настроить одинаковое отображение в браузерах Internet Explorer

До появления  IEcollection  я пользовался виртуальной машиной в которой была винда с IE6.

Теперь же все намного проще.

Любую версию от IE 1.5 до IE8 можно запустить на одной ОС всего одним кликом.

Скачать можно здесь http://utilu.com/IECollection/