23 Окт

Добрый день, я Виталий Харисов. Я расскажу вам про вёрстку независимыми блоками.

Что такое блок

Прежде чем перейти к непосредственно независимым блокам, давайте определим, что такое блок вообще.

20 Окт

Что случается, когда аналитик сталкивается с абстрактными художественными понятиями? А если от них зависит эффективность и успешность его работы? Он попытается их формализовать, выявить критерии, связи и так далее. Обычно получается забавно и очевидно. Но иногда из этого вырастает полезная теория.

Я столкнулся с понятием красоты сайта. Делюсь наработками.
Картинки для привлечения внимания нет.

 Факт 1

Красота сайта равна его удобству, реальной или потенциальной пользе для посетителя.

Стоит рассмотреть интересный частный случай. Сайт с необычным дизайном кажется красивым, хотя очевидной пользы посетителю может не нести. У человека есть шаблон — за необычной обложкой находится необычное содержание. Мы ждем что-то новое. Новизна информации повышает ее потенциальную пользу для нас.

Факт 2

Работа мозга требует значительных ресурсов организма. Люди стремятся свести к минимуму мыслительный процесс. Лучше найти закономерности и сложить их в шаблон. Нам очень приятно, когда кто-то подумал за нас, а мы используем результат.

Факт 3

Интернет интегрирован в повседневную жизнь. Мы ориентируемся на сайтах не хуже, чем в реальном мире. Особенности виртуальности стали очевидными, как-будто так было всегда.

Это базовые факты, на основе которых построены выводы ниже.

Минимализм


Чем выше плотность полезной информации, тем красивее сайт. Важно только содержание. “Дизайн ради дизайна” вредит. Оформительство, стилизации или имитации, которые не помогают раскрытию идеи, ухудшают дизайн. Кнопка может быть плоской, иконка — схематичной, а ссылка — неподчеркнутой. Потому что из простого образа мы считаем его назначение. А блики, тени и выпуклости понижают плотность полезной информации.

Простые геометрические формы, крупные заголовки с хорошей типографикой, большие фотографии или видео, простые анимации — наш мозг считывает информацию в этом формате быстрее всего. Поэтому эти элементы популярны.

В противовес можно привести примеры отличных промо сайтов, построенных на спецэффектах —

Нужно понимать, что эффекты здесь и есть содержание. Их разработка была основной целью. Они развлекают, а не мешают.

Вторая составляющая красоты сайта — удобство. Чем меньше посетитель задумывается при использовании сайта, тем он ему больше нравится. Полотно текста без заголовков и абзацев может содержать много полезной информации. Но его трудно читать. Оно не выглядит красиво.

Вариативность может снижать как плотность полезной информации, так и удобство в использовании. Поэтому отказ от некоторых второстепенных функций часто приводит к улучшению продукта в целом.

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

Подборка минималистичных сайтов — siteinspire.com.

Адаптивность

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

Анимация


При ограничениях минимализма на помощь дизайнерам пришла анимация. Она помогает расставить акценты, объяснить назначение элементов интерфейса, дополнить содержание. Распространенный прием — использование анимации при наведении или клике на объект. Цель — повысить отзывчивость сайта. Анимация создает дополнительную информацию в тот момент, когда она нужна.

Мы использовали эффект параллакса на сайте rizhik.biz. Он создает искусственный беспорядок, который подчеркивает количество и разнообразие продукции. Другая наша работа — dmbasis.ru, где анимация рассказывает об услугах компании. В этих примерах анимация является содержанием.

Отличные примеры использования анимации как содержания —

И целая коллекция подобных сайтов — hoverstat.es.
 
http://habrahabr.ru/company/htdt/blog/235589/
20 Окт
<html>
  <head>
  <title>Image Rotate
  </head>
  
  <body>
  <img src="" name="Rotating" id="Rotating1" width=100 height=100>
  <img src="" name="Rotating" id="Rotating2" width=100 height=100>
  
  
  <script language="JavaScript">
  var ImageArr1 = new Array("Picture(3).jpg","Picture(1).jpg","Picture(2).jpg");
  var ImageHolder1 = document.getElementById('Rotating1');
  
  var ImageArr2 = new Array("Picture(5).jpg","Picture(6).jpg","Picture(7).jpg");
  var ImageHolder2 = document.getElementById('Rotating2');
  
  function RotateImages(whichHolder,Start)
  {
  	var a = eval("ImageArr"+whichHolder);
  	var b = eval("ImageHolder"+whichHolder);
  	if(Start>=a.length)
  		Start=0;
  	b.src = a[Start];
  	window.setTimeout("RotateImages("+whichHolder+","+(Start+1)+")",1500);
  }
  
  RotateImages(1,0);
  RotateImages(2,0);
  
  </script>
  
  </body>
  </html>

Auto Suggest with Javascript
Hide/Show and Toggle DIV usng JavaScript
Arrays in Java script
Sorting A Un-Ordered List (UL) Using JavaScript
Timer In JavaScript
20 Окт

Не болейте. Решил сделать обзор интересного плагина и заодно дать рекомендации к использованию. 


Для самых нетерпеливых — получится у нас так.  Плагин называется jQuery 2D Transformation Plugin. Он позволяет использовать анимацию свойств CSS 2D Transforms

Обзор с описанием свойств — в конце топика.

Теперь вернемся к самому плагину. После его подключения мы можем писать такие вещи:


$('.example').click(function() {
    $(this).animate({rotate: '+=45deg'}, 'slow');
});



Таким образом, по клику на элементе он повернется на 45°. Можно задать ряд свойств, например:


$('.example').click(function() {
    $(this).animate({
       rotate: '+=45deg', //Повернули
       scale: [1.5, 1.5] // и при этом увеличили в 1.5 раза
    }, 'slow');
});



Цепочки анимаций


Цепочки анимированных трансформаций открывают нам большие возможности сделать клевые вещи без флеша. Но здесь имеется два подводных камня, которые мы преодолеем, и третий небольшой камешек, которого только гроб исправит.

Во-первых, по-умолчанию в джеквери доступно два вида easing'а: линейный и нарастающий. В большинстве случаев для создания красивой цепочки анимации нам понадобятся именно линейные анимации, но, если это не указать, джеквери будет использовать нарастающую. Для этого немного видоизменяем наш код, добавляя параметр «linear»:


$('.example').click(function() {
    $(this).animate({
       rotate: '+=45deg', //Повернули
       scale: [1.5, 1.5] // // X (ширина) и Y(высота).
    }, 'slow', 'linear');
});



Наверняка многие знают, как сделать цепочку анимации, но на всякий случай расскажу. Для создания цепочки анимаций просто вызываем новую функцию после описания свойств текущей анимации:


$('.example').click(function() {
    var exemple = $(this); // Не люблю лишние вызововы $;
    exemple.animate({
       rotate: '+=45deg',
       scale: [1.5, 1.5]
    }, 'slow', 'linear', function(){
                exemple.animate({
                     rotate: '+=45deg', //Напоминаю, что запись вида += в новых версиях джеквери означает, что к текущему значению прибавляем новое.
                     scale: [1.5, 1.5] 
                });
       });
});



Второй подводный камень заключается в том, что браузеры (кроме оперы) страшно тормозят с прорисовкой нашего трансформируемого объекта, если мы используем translate, translateX или translateY в цепочках анимаций. Первый шаг все отрисовывают нормально, а вот второй и последующие совершенно непредсказуемо, вплоть до пропуска звеньев анимации.
Вот, что получается (смотреть в хроме или фф).

Побороть эту напасть можно — нужно использовать top, left, bottom или right вместо translate'ов:


$('.example').click(function() {
    $(this).animate({
       rotate: '+=45deg', //Повернули
       scale: [1.5, 1.5] // // X (ширина) и Y(высота).
       left: '+= 20px',
       top: '+=30px'
    }, 'slow', 'linear');
});



Финальный результат и еще пример, с летающим блоком с текстом.

Третий подводный камешек заключается в том, что ИЕ 6-8 при трансформациях png-картинок с прозрачностью рисует черный контур на границах прозрачности:


Поговаривают, что такая же фигня со шрифтами, а еще поговаривают, что zoom:1 лечит шрифты.

Однако, меня это все не сильно расстраивает, в ИЕ9 все в порядке да и черный контур в старых ИЕ смотрится даже несколько стильно ;)
Тем не менее, если кто знает, можно ли это исправить, пишите!

Cool stuff, bro!


На закуску, список свойств CSS3 transforms, а также бонусных, которые есть в плагине:

matrix: [1, 0, 0, 1, 0, 0] — Осуществяет 2D преобразование в виде матрицы преобразования из шести значений. Курить это достаточно трудно
reflect: true — бонусное свойство, поворачивает элемент на 180°
reflectX: true — бонусное, отражает с ног на голову
reflectXY: true — бонусное. То же, что и reflectX + rotate(-90deg)
reflectY: true — бонусное, просто отражает вниз
rotate: '45deg' — поворот, он и в Африке поворот:

skewX: '10deg, skewY: '10deg', skew: ['10deg', '10deg'] — искажение в градусах. Как это выглядит, показано ниже


scale: [1.5, 1.5], scaleX: 1.5, scaleY: 1.5 — масштабирование:


translate: ['20px', '20px'], translateX: 20px', translateY: '20px' — движение. Использовать не рекомендую, лучше leftrighttopbottom. В обоих сслучаях получится так:


origin: ['20%', '20%'] — Используется при определении точки отсчета для применения трансформации к элементу. Например, при повороте rotate по умолчанию точкой отсчета будет центр элемента. А при значениях origin: 0 0 точкой отсчета будет верхний левый угол:


Почему-то в комментариях в файле плагина написано:
— transformOrigin is not accessible. 
Но работать должно. Возможно, просто не сразу реализовали и забыли удалить коммент.

Посмотреть часть этих свойств в действии, а также получить кроссбраузерный код (в т.ч. для ИЕ 6-8) можно тут (почему-то сайт плохо работает в Опере). Только учтите, что сайт не использует возможности ИЕ9, в котором эти свойства доступны с префиксом -ms-, а скармливает ему -ms-filter-матрицу.

 

http://habrahabr.ru/post/123000/

10 Окт

The com.danga.MemCached class within Java provides a native interface to memcached instances. You can obtain the client from https://github.com/gwhalin/Memcached-Java-Client/downloads. The Java class uses hashes that are compatible with libmemcached, so you can mix and match Java and libmemcached applications accessing the same memcached instances. The serialization between Java and other interfaces are not compatible. If this is a problem, use JSON or a similar nonbinary serialization format.

10 Окт

Today I have new article for PHP. Last time I did post about Memcache with PHP. Today we will talking about caching in PHP again. I will show you how you can use Memcache in PHP. We will prepare useful class for working with Memcache for us and several examples. Memcache itself providing procedural and object oriented interface to memcached, highly effective caching daemon, which was especially designed to decrease database load in dynamic web applications.

10 Окт

Кэширование сегодня является неотъемлемой частью любого Web-проекта, не обязательно высоконагруженного. Для каждого ресурса критичной для пользователя является такая характеристика, как время отклика сервера. Увеличение времени отклика сервера приводит к оттоку посетителей. Следовательно, необходимо минимизировать время отклика: для этого необходимо уменьшать время, требуемое на формирование ответа пользователю, а ответ пользователю требует получить данные из каких-то внешних ресурсов (backend). Этими ресурсами могут быть как базы данных, так и любые другие относительно медленные источники данных (например, удаленный файловый сервер, на котором мы уточняем количество свободного места). Для генерации одной страницы достаточно сложного ресурса нам может потребоваться совершить десятки подобных обращений. Многие из них будут быстрыми: 20 мс и меньше, однако всегда существует некоторое небольшое количество запросов, время вычисления которых может исчисляться секундами или минутами (даже в самой оптимизированной системе один могут быть, хотя их количество должно быть минимально). Если сложить всё то время, которое мы затратим на ожидание результатов запросов (если же мы будем выполнять запросы параллельно, то возьмем время вычисления самого долгого запроса), мы получим неудовлетворительное время отклика.

Решением этой задачи является кэширование: мы помещаем результат вычислений в некоторое хранилище (например, memcached), которое обладает отличными характеристиками по времени доступа к информации. Теперь вместо обращений к медленным, сложным и тяжелым backend’ам нам достаточно выполнить запрос к быстрому кэшу.

10 Окт

В этой маленькой статье, которую с удовольствием прочитал бы сам неделю назад, я попытался собрать все вещи, которые понадобились бы человеку, задумай он «с нуля» написать приложение на RoR. То есть не углубляясь ни в одну из областей, описать необходимый минимум действий, чтобы установить, настроить и написать своё первое приложение.Здесь собрано, как мне кажется, всё, что нужно и я надеюсь этот текст сэкономит кому-нибудь несколько часов поиска в интернете). Сам изучаю RoR вторую неделю, так что не судите строго).

10 Окт

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

Несколько раз я делала неправильный выбор СУБД. Эта история об одном таком выборе — почему мы сделали такой выбор, как бы узнали что выбор был неверен и как мы с этим боролись.Это все произошло на проекте с открытым исходным кодом, называемым Diaspora.

02 Апр

 Аннотация: Джо Армстронг — один из создателей языка Erlang. Работая в лаборатории Ericsson в 1986 году, он входил в состав команды, которая разработала и реализовала первую версию языка. С тех пор, помимо работы над самим языком, он написал несколько книг об Erlang, провел первый учебный курс по Erlang и обучил языку сотни программистов. Невзирая на свой напряженный график (Джо регулярно читает лекции и выступает на конференциях), он любезно согласился дать интервью нашему журналу.

Вверх