Наборы инструментов Bootstrap для создания web-приложений

22:09 Рубрика: Web Development

bootstrap


HTML KickStart

Bootstrap от Twitter

Fbootstrapp

Simpliste

Foundation

Initializr

Google+ UI Buttons

TwBootstrap 2 github.com/twitter/bootstrap/tree/2.0-wip

 

More

Шрифт Web Symbols

21:37 Рубрика: Web Development

websymbols

 

У каждого дизайнера наступает момент, когда ему надоедает заново рисовать одинаковые элементы на сайтах. Например, иконки социальных сетей или стрелочки для галерей. Также, технологам надоедает каждый раз нарезать «гиф» или «пнг» одного и того же элемента.

Чтобы упростить себе эту работу мы решили сделать шрифт, в котором каждая буква — символ (как правило, часто используемый). Идея не новая, ведь есть Windings и другие похожие гарнитуры, но в них как всегда не хватает самого необходимого и достаточно много ненужного.

Шрифт очень удобен — он векторный, может быть любого размера, любого цвета и работает даже в IE7.

 

Далее

LESS: программируемый язык стилей

21:15 Рубрика: Web Development

less Я не люблю CSS. Простой и понятный. Это движущая сила Интернета, но он слишком ограниченный и им трудно управлять. Пришло время привести этот язык в порядок и сделать его более полезным, используя динамический CSS при помощи LESS.
Объясню свою позицию на примере. Почему бы вместо использования #FF9F94 для получения темно-персикового цвета просто не хранить значение этого цвета в переменной для её последующего использования? Что бы перекрасить сайт достаточно будет изменить значение переменной всего в одном месте и всё.
Другими словами: это будет очень изящно, если мы будем использовать немного программирования и логики в CSS, что бы сделать его более мощным инструментом. Хорошо, что это всё возможно с использованием LESS.

 

Так что же такое LESS?

JavaScript debugger для IE

13:32 Рубрика: Web Development

jsdebug

 

Core Services выпустили дебаггер Companion.JS, который поддерживает, кроме расширенных сообщений об ошибке (call stack и реальное имя файла где произошла ошибка), "Firebug"-подобную Console API.
В сочетании с основным продуктом (DebugBar) получается неплохая замена Firebug-у, особенно если учесть «безрыбье» в этом вопросе...

Материалы:
Статья «Companion.JS - компаньйон веб-разработчика, которому по пути с IE»
Линк скачивания: http://www.my-debugbar.com/wiki/uploads/…
Страница описания установки: http://www.my-debugbar.com/wiki/Companio…

 

(c)

Прощай Smarty или простой шаблонизатор

13:30 Рубрика: Web Development

На прошлой недели запускал один проект и что-то мне не понравилась скорость генерации страниц. Начал искать в чем дело. Оказалось, в шаблонизаторе!

Думаю, очень многие разработчики используют в качестве шаблонизатора Smarty. По-моему, это самый известный шаблонный движок. Чем он знаменит?

  • легок в освоении, понятен даже человеку не владеющему php;
  • легко интегрируется в готовые проекты;
  • очень функционален, обладает практически своим языком программирования.

И вот тут-то “собака и зарыта”. Программисты использующие Smarty, пушит шаблоны на его (довольно корявом) языке, чтобы шаблонизатор потом постоянно перегонял эти шаблоны в PHP-код (куча никому не нужной работы!!!). Если вдуматься, получается самая большая глупость во всей истории программирования на PHP!

Не проще ли сразу писать шаблоны на PHP?

 

Какая разница писать: {$title} или <?php echo $title?> (либо <?=$title?>)? Да первый вариант, короче. Но это скорее дело привычки, а вот скорость приложений на “нативных” шаблонах, выростает в 2-3 раза! По-моему, неплохой результат, и ради него можно написать пару-тройку лишних символов.

Два с лишним года я был ярым сторонником Smarty, но теперь я послал Smarty в пешее эротическое путешевствие. Все теперь только “нативные” шаблоны – многие вещи в них сделать гораздо легче, чем в каких либо других шаблонизаторах. Шаблонизатор уровня Smarty – это настоящие грабли!

В замен 300-килобайтному Smarty, я за 10 минут написал свой простенький шаблонизатор. Его задача – собирать переменные в одно место и рендерить шаблоны. И все! Больше от шаблонизатора ничего не нужно.

И так код:

 

<?php
class VIEW_View
{
	private $_path;
	private $_template;
	private $_var = array();

	public function __construct($path = '')
	{
		$this->_path = $_SERVER['DOCUMENT_ROOT'] . $path;
	}

	public function set($name, $value)
	{
		$this->_var[$name] = $value;
	}

	public function __get($name)
	{
		if (isset($this->_var[$name])) return $this->_var[$name];
		return '';
	}

	public function display($template, $strip = true)
	{
		$this->_template = $this->_path . $template;
		if (!file_exists($this->_template)) die('Шаблона ' . $this->_template . ' не существует!');

		ob_start();
		include($this->_template);
		echo ($strip) ? $this->_strip(ob_get_clean()) : ob_get_clean();
	}

	private function _strip($data)
	{
		$lit = array("\\t", "\\n", "\\n\\r", "\\r\\n", "  ");
		$sp = array('', '', '', '', '');
		return str_replace($lit, $sp, $data);
	}

	public function xss($data)
	{
		if (is_array($data)) {
			$escaped = array();
			foreach ($data as $key => $value) {
				$escaped[$key] = $this->xss($value);
			}
			return $escaped;
		}
		return htmlspecialchars($data, ENT_QUOTES);
	}
}
?>

Вот и все. Метод xss будет полезен при выводе данных для предотвращения XSS-уюзвимости.

Пример использования:

<?php
require_once('class.view.php');

$view = new View('/tpl/');
$view->set('title', 'Наш заголовок');
$view->set('content', 'Какой-то текст.');
$view->display('index.tpl');
?>

Файл шаблона /tpl/index.tpl

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
	<title><?php echo $this->title?></title>
</head>
<body>
	<h1><?php echo $this->title?></h1>
	<?php echo $this->content?>
</body>
</html>

По моему, все просто и удобно.

Замечение: “сложности” могут возникнуть с циклами foreach. Из-за бага в PHP . Данная ошибка уже исправлена в версиях PHP выше 5.0.5. Пользователям предудыщих версий просто придется писать:

forearch($t = $this->array as $k => $v)

вместо:

forearch($this->array as $k => $v)

Далее

CopyPasteCharacter.com

10:53 Рубрика: Web Development

copypastecharacter

 

A web and iPhone application for copying the ‘hidden’ characters that comes with the computer’s typefaces, to be pasted into emails, tweets, text documents, forums and whatever else you might need to spice up with an extra ♔, ฿ or, ❒.

 

http://copypastecharacter.com/

PIE

10:03 Рубрика: Web Development

pie

 

PIE makes Internet Explorer 6-9 capable of rendering several of the most useful CSS3 decoration features.

 

http://css3pie.com/

(also)

7 причин для перехода с Drupal на Yii

13:26 Рубрика: Drupal

Скоро будет выпущен Drupal 7, так что многие организации должны решить, следует ли им обновляться с Drupal 5 или 6. Drupal хорош, если вы делаете много сайтов и нужно создавать новые сайты быстро и без особой траты на написание кода, или если вам просто нужен блог-на-стероидах.

Работа с Drupal это как жить в double-wide (карточный домик), если вы не можете позволить себе традиционный дом. Если у вас есть сайт, который делался на Drupal и вырос достаточно, чтобы использовать полный рабочий день разработчиков, то вам нужно перенести свой ​​сайт на Yii PHP фреймворк.(PHP ненавистники могут последовать за Onion и использовать Django Python фреймворк, хотя это займет больше времени, смена языка и фреймворка)

Я технический директор сайта, который перешел с Drupal на Yii 30 Апреля 2010 года. На то время, когда мы еще только обсуждали перенос, было трудно найти подходящую информацию, не было даже книг про Yii. Было несколько упоминаний по поводу перехода с Drupal на Yii, но они не содержали достаточно данных, чтобы я был спокоен. Я беспокоился, что Yii может быть медленнее, чем наша сильно оптимизированная инсталляция Drupal, поэтому я решил переписать 20% ядра нашего сайта (что давало нам 80% всего функционала) за 30 дней. Казалось бы, отличный способ проверить продуктивность и производительность фреймворка, и если Yii не даст результата после месяца работы, мы всегда можем вернуться обратно к Drupal и перенести обратно любые новые данные.

Yii был намного быстрее, чем наш Drupal сайт с 150 000 нодами (каждая с переписаным URL) и 50 000 посетителями в день. Да, мы работали как сумасшедшие эти 30 дней (и последующие 15), но оно стоило того. Время, которое мы раньше тратили на отлов и исправление медленных запросов в Drupal, мы с удовольствием тратили разрабатывая на Yii. Реальная выгода от Yii пришла позже, когда мы переработали свой сайт.
С Yii MVC мы изменили всего 2 layout файла против нескольких десятков в Drupal.

 

Далее

Несколько полезных сервисов

13:24 Рубрика: Web Development

Хочу поделиться ссылками на несколько полезных сервисов. Некоторые из них помогут сэкономить время, другие — сделают за Вас незнакомую/нелюбимую работу. Список разбит по категориям, чтобы было легче ориентироваться.

 

Далее

Виртуализация для дома или Виртуализация на Atom

13:23 Рубрика: Всячина

Появилось желание расширить функционал централизованного хранилища, а счета за электричество натолкнули на мысль о смене железа с Intel Celeron на Atom. Одним из преимуществ можно считать то, что Atom работоспособен даже без активного охлаждения. Таким образом, подверженными механическим поломкам остаются только жесткие диски. В случае, если бы оправдались заявления о проблемах с производительностью, он по-прежнему бы сгодился на FreeNAS хранилище. Итак, тесты:

 

Далее