Pull to refresh
0
0
rostis @rostis

User

Send message

Социальные сети, перспективы развития и способы монетизации. Часть 3

Reading time12 min
Views6.5K
Третья часть моего доклада на конференции UA WEB про социальные сети. Тема части: способы монетизации социальных сетей.

Для пропустивших, советую сначала прочитать первую часть и вторую часть
Читать дальше →
Total votes 44: ↑40 and ↓4+36
Comments42

Будущее CSS

Reading time3 min
Views1.8K

В связи с участившимися сообщениями о том, что в CSS хотят добавить переменные, анимацию, трансформацию и прочая, хотелось бы немного отстраненно порассуждать на эту тему.
CSS, которому уже 12 лет, изначально был задуман и разрабатывался как средство для описания внешнего вида документа. С тех пор утекло много воды и технология претерпела значительные изменения и дополнения. На данный момент, рабочая версия по стандарту W3C, принятая в 2006 году — Уровень 2.1. Уровень 3 находится в состоянии разработки (есть черновик), и ожидается с нетерпением многими разработчиками.
Вокруг будущего CSS ходит много слухов и предположений, коротые муссируются и множатся, выливаются в дискуссии и споры. Ведь по сути, если хотя бы половина предлагаемых изменений будет осуществлена, то CSS превратится в (полноценный?) язык программирования визуальной составляющей веб-документов.
Читать дальше →
Total votes 48: ↑43 and ↓5+38
Comments72

Психологи не знают теорию вероятности

Reading time3 min
Views4.5K
Специалисты по теории вероятности обнаружили фундаментальные изъяны в проведении многих социологических опросов и психологических тестов, которые осуществлялись за последние 50 лет.

Дело в том, что гуманитарии совершенно не разбираются в математике. В частности, им не знаком парадокс Монти Холла. Это и неудивительно, ведь данный феномен из теории вероятности противоречит здравому смыслу. А люди гуманитарных специальностей (социологи, психологи и т.д.) проводят свои опросы и вычисляют результаты, исходя из здравого смысла и базовой логики, которая здесь не срабатывает.

Вот простой пример когнитивного диссонанса. На игре «О, счастливчик!» вам предлагают три варианта правильного ответа. Вы выбрали один, но добрый ведущий решает вам помочь и закрывает один из трёх ответов, который точно неправильный. Что нужно делать в такой ситуации? Здравый смысл подсказывает, что нет никаких причин отменять свой выбор. Но теория вероятности чётко указывает, что при смене варианта ответа ваши шансы на победу возрастают в два раза.

Это приблизительное описание известного парадокса Монти Холла (подробное описание под хабракатом). Если учесть его при проведении соцопросов и психологических исследований, то результаты многих из них можно интерпретировать иначе и результаты немного изменяться.
Читать дальше →
Total votes 84: ↑69 and ↓15+54
Comments303

Новое в CSS 3: анимация, трансформация, переменные.

Reading time2 min
Views6K
Что-то мне кажется, что в этот раз с идеями внедерения новых правил разработчики перестарались…
Dave Hyatt, Dean Jackson и Chris Marrin (все трое работают в Apple) предложили внедрить в CSS 3 поддержку создания анимации, трансформацию объектов, их изменение с  течением времени и ввести css-переменные.
Читать дальше →
Total votes 34: ↑34 and ↓0+34
Comments92

Позднее статическое связывание в PHP (Часть II: Практика)

Reading time3 min
Views10K
phpПервую часть читайте здесь.

Теперь приступим к практике. Наиболее показательным примером использования LSB, по-моему, является случай, когда у вас есть набор классов выполняющих похожие действия. В терминах веб-разработки мы часто встречаемся с такими задачами при обращениях к таблицам базы данных, особенно в ORM системах. Все ваши объекты для работы с таблицами будут похожи по сути, но при этом будут иметь собственный функционал ( и, соответственно, свои подклассы).
Читать дальше →
Total votes 18: ↑15 and ↓3+12
Comments4

Прямые ссылки на AJAX веб-сайтах – наша технология Fullajax Direct Link.

Reading time7 min
Views10K
Приветствую всех читателей. Популярность AJAX такая, что это, по сути, уже стандарт де-факто для многих проектов. Хотя, как и все технологии (особенно, новые и/или модные), она часто применяется (чего уж грех таить) и там, где без нее не обойтись, и там, где вполне можно, а зачастую и нужно. Впрочем, сегодня речь пойдет о другом.

Одним из неприятных моментов при использовании AJAX – является отсутствие прямых ссылок на динамически сгенерированные страницы или их отдельные части. Здесь кроется и вообще-то концептуальный вопрос – а что, собственно говоря, является в таком подходе страницей – она не имеет некоторого статического представления, каждый раз совершенно другая (не путать с динамической генерацией на сервере), и, фактически, предоставляет пользователю окно в многомерное представление самой себя.

Но все же – допустим, у нас есть простенький, но претенциозный веб-сайт визитка, где по переходам меню AJAX подгружает и выводит контент, а мы хотим дать знакомому по ICQ ссылку на контактную страницу (или любую другую, не суть важно).

Есть два подхода решения проблемы ссылок.
Читать дальше →
Total votes 66: ↑58 and ↓8+50
Comments143

«Социальные стартапы» будут выращивать в инкубаторах

Reading time1 min
Views456
Среди современных веб-стартапов обнаружилась новая тенденция. Вместо чистой монетизации и конкретных бинес-моделей они пытаются воплотить в себе некую социальную миссию. Под влиянием таких финансово сверхуспешных, но формально некоммерческих организаций как Mozilla и TechSoup предприниматели новой волны тоже хотят создавать некие общественно значимые проекты, которые будут востребованы обществом и приносить реальную пользу людям. А деньги, мол, сами придут как побочный продукт жизнедеятельности. Об этом новом феномене пишет NY Times.

Это явление особо проявляет себя в технологической индустрии. Именно здесь появляются формально некоммерческие организации нового типа, которые при этом не зависят от благотворительных пожертвований и успешно зарабатывают деньги сами. Mozilla Foundation и TechSoup — два самых ярких примера. Каждая из них зарабатывает более $50 млн в год и платит зарплату более чем сотне сотрудников. На вид это типичные коммерческие корпорации.

Кроме двух вышеупомянутых, существуют сотни более мелких некоммерческих структур, занимающих определённую долю на рынке и имеющих стабильный доход от продажи услуг. Это и Internet Archive (индексация информации), и юридические группы вроде Electronic Frontier Foundation (юридические услуги), и многие другие.

В духе нового времени в Кремниевой долине появились первые инкубаторы для так называемых «социальых стартапов». Правда, вряд ли они могут рассчитывать на венчурные инвестиции, потому что они в принципе не ставят цель зарабатывать миллиарды долларов. Они ограничивают себя минимальной прибылью, достаточной для поддержания проекта и пропитания его основателей.
Total votes 17: ↑15 and ↓2+13
Comments5

Страшные сказки про PHP5, рассказанные на ночь…

Reading time3 min
Views2.7K
1) Какой бы ерундой вы не занимались с PHP, узкое место _всегда_ — БД. PHP — он как Буратино — тупОЙКАк… дрова. Lighttpd и Nginx позволяют разнести его по множеству физических серверов на раз без шума и пыли. Зарплата адекватного спеца по PHP в Москве — 30-45 тыс. рублей в месяц, стоимость аренды нормального сервера — от 3 тыс. рублей в месяц. А вы не знали ;)?

2) Какой бы ерундой вы не занимались — 30-60% производительности (возможно и больше) PHP-кода решит правильно выбранный и настроенный акселератор.

3) Серебряной пули нет. Не важно, какой концепт вы применяете — строгое ООП (в стиле Zend Framework), функции в стиле PHP4 (или ограниченное ООП) или вообще лапшу в стиле «PHP для чайников» — ни одна из этих парадигм не даст ощутимый прирост производительности, если конечно ваши программисты не выше как минимум на голову.
Читать дальше →
Total votes 182: ↑154 and ↓28+126
Comments287

Вирусы переселяются на USB-флэшки

Reading time2 min
Views9.9K
Антивирусные компании сообщают о новой тенденции в распространении вирусов. После волны почтовых и скриптовых вирусов теперь одним из самых популярных способов распространения вредоносных программ становятся USB-флэшки. Это стало возможным благодаря слабости операционной системы Windows, которая по умолчанию автоматически запускает файл autorun.inf со сменного накопителя.

Впервые вирусы, которые распространяются таким способом (через INF/Autorun), проявили себя в июне 2007 года, когда по статистике ESET Software (разработчик NOD32) их доля выросла до 2,17% от общего количества зарегистрированных вирусов. К настоящем моменту, то есть всего за девять месяцев, число таких вирусов выросло до 10,3%.

В число самых популярных вирусов марта 2008 года вошли генератор всплывающих окон Win32/Adware.Virtumonde (распространяется через USB-флэшки), который очень сложно удалить, а также Mebroot, использующий классическую технику записи в MBR и хранения данных в секторах жёсткого диска, а не в файлах, что усложняет его обнаружение, даже когда он модифицирует реестр Windows.
Читать дальше →
Total votes 41: ↑33 and ↓8+25
Comments105

Взаимодействие с GMail на PHP

Reading time1 min
Views2.2K
Еще в 2005 году командой энтузиастов была написана библиотека libgmailer для взаимодействия с почтой компании Google. К сожалению проект был заброшен, но даже несмотря на это, классы позволяют на сегодняшний день получать информацию о письмах, ярлыках и вложениях. Причем последние можно даже скачать.
Читать дальше →
Total votes 32: ↑29 and ↓3+26
Comments15

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

Reading time1 min
Views4.9K
Как сделать RSS иконку любого цвета, используя одну картинку
В этой статье я расскажу вам как сделать RSS иконку любого цвета, используя всего одну картинку.

Идея заключается в том, чтобы использовать -элемент, фоном которого будет картинка в формате .png, а цвет фона элемента будет цветом нашей иконки. Мы возьмем именно png изображение, чтобы воспользоваться свойством сохранения прозрачности этого формата.
Читать дальше →
Total votes 81: ↑66 and ↓15+51
Comments60

data URI

Reading time2 min
Views7.8K
Пару лет назад я занимался проблемой data URL в Internet Explorer, добился определённых результатов, но то, что получилось, использовать было невозможно. Data URL (иногда его ещё называют «протокол data:») — возможность вставлять ресурсы (графику, CSS, JavaScript и так далее) в HTML код.


Подробнее о data URL можно узнать из свежей статьи на «Хабре» «Картинки в теле страницы с помощью data:URL». Хотелось только её дополнить двумя замечаниями: IE8b1 поддерживает data URL длиной не более 32Кб, в современных версиях других браузеров ограничений увидеть не удалось, Safari/Opera/FF показали изображения размером около 700Кб.


Теперь амбула.


Вчера ночью мне пришла в голову идея как можно попытаться корректно совместить data URL и включение картинок через протокол mhtml. То, что у меня не получилось два года назад, получилось сейчас.


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


Надеюсь на примерах всё понятно:
bolk_data_uri_header();
bolk_data_uri('myjpeg.jpg');
bolk_data_uri('ourpng.png', 'border: 2px dotted red');


Код самой библиотеки:
function bolk_data_uri_header() 
{ 
    echo "<!--\n" 
        ."Content-Type: multipart/related; boundary=\"=_NextPart_01C6A9B1.539AB070\"\n\n" 
        ."--=_NextPart_01C6A9B1.539AB070\n" 
        ."Content-Transfer-Encoding: base64\n" 
        ."Content-Type: text/html\n" 
        ."-->\n\n"; 

} 

function bolk_data_uri($file, $style = '') 
{ 
    if (!( file_exists($file) && ($data = @getimagesize($file)) )) return false; 

    $name = uniqid('', true); 

    if ($style <> '') $style = ' style="'.htmlspecialchars($style).'"'; 
    $mime = strpos($_SERVER['HTTP_USER_AGENT'], 'Gecko') ? " type='{$data['mime']}" : '';

    echo "<!--\n" 
        ."--=_NextPart_01C6A9B1.539AB070\n" 
        ."Content-Location: {$name}\n" 
        ."Content-Transfer-Encoding: base64\n" 
        ."Content-Type: {$data['mime']}; -->\n" 
        ."<object data='data:{$data['mime']};base64,\n\n"; 

    echo base64_encode(file_get_contents($file)); 

    echo "' {$data[3]}{$style}{$mime}'><img " 
        ."src='mhtml:http://{$_SERVER['HTTP_HOST']}"
        ."{$_SERVER['REQUEST_URI']}!{$name}' {$data[3]}{$style} /></object>\n\n" 
        ."<!--\n" 
        ."--=_NextPart_01C6A9B1.539AB070-->"; 

    return true; 
}



Секрет в совмещении данных, чтобы IE, обратившись к странице по протоколу mhtml нашёл нужный кусор, «спрятанный» внутри тега, а остальные браузеры увидели бы картинку через data URL.


Код тестировался под Opera 9.50b, FF 2.0.0.13, Safari 3.1 и IE6. Предложения и результаты испытаний — прошу в комментарии.


Оригинал записи опубликован в моём блоге.
Total votes 46: ↑43 and ↓3+40
Comments85

BSD vs Linux. Что такое «Порт»?

Reading time4 min
Views7.9K
Теперь, после базовой системы, вторая категория: те программы, которые являются пакетами дополнений. В мире BSD это обычно называется «системой портов». Это имя выбрано не случайно.Традиционно, чтобы запустить программу в системе, первое, что вы должны были сделать, — это скомпилировать её. И часто перед компиляцией приходилось её допиливать. Ваша система могла требовать другие заголовочные файлы. Иногда отличались объявленные константы. Некоторые части иной раз переписывались с нуля из-за их несоответствия вашей системе.Другими словами, вам надо было «портировать» программу для своей ОС и/или для вашей конкретной системы. Основная цель системы портов — это сделать всю работу по портированию за вас. То, что она также автоматизирует сборку и инсталляцию и обеспечивает такими сервисами, как 'uninstall', в её имени, правда,
не отражено
Total votes 38: ↑34 and ↓4+30
Comments90

Оптимизируем JavaScript: насколько ресурсоемки цепочки вызовов?

Reading time1 min
Views1.6K
Примечание: ниже перевод статьи «JavaScript optimization, are chained calls expensive?». В ней автор тестирует, насколько медленнее производятся цепочки вызовов функций по сравнению с их кешированными аналогами. В конце приведены результаты моих тестов производительности.

Sree Kotay в своем блоге оставил небольшую заметку о JavaScript. (Если вас интересуют технические подробности, я рекомендую ознакомиться с презентацией Simon Willison «A (Re)-Introduction to JavaScript».) В своем блоге Sree пишет следующее:

Чтобы разобраться с теми различиями для простейшего случая, которые следуют из понимания (очевидных) основ JS оптимизации, стоит осознать, что:
for (i=0; i < 100; i++) a.b.c.d(v);


… ЗНАЧИТЕЛЬНО медленнее, по крайней мере, в JavaScript, чем:

var f=a.b.c.d;
for (i=0; i < 100; i++) f(v);
… потому что, в конце концов, JS — это динамический язык. Я предоставлю несколько более конкретных советов для JavaScript и тестов производительности, которые прояснят эту ситуацию.


читать дальше на webo.in →
Total votes 26: ↑25 and ↓1+24
Comments51

Как грамотно отправлять почту из скриптов (в частности — на PHP)

Reading time5 min
Views39K
Первая часть текста взята из инструкции хостинг-провайдера Netangels. Вторая — авторская.

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

Для того, чтобы быть уверенным, что ваше сообщение отправляется действительно верно, необходимо иметь по меньшей мере базовые представления о формате почтового сообщения. Формат почтового сообщения описан в нескольких стандартизирующих документах, основными из которых являются RFC 822 (описывает формат передачи простого текста на английском языке) и RFC 2045 и далее (описывает расширения этого формата для передачи произвольных данных).
Читать дальше →
Total votes 59: ↑56 and ↓3+53
Comments76

Хабраверсия правил хорошего тона для веб-технолога

Reading time2 min
Views2.7K
Всем доброго дня.

Прочитал вчера на Хабре интервью с Ольгой Алексашенко, в котором она, кроме всего прочего, разделяет верстальщиков на два класса — тех, кто «фигачит» (большинство сотрудников небольших студий с определенным опытом работы), и «творцов»-перфекционистов, ищущих для каждого случая идеальное решение. У меня сразу же возник вопрос — как в рамках одной студии сформировать единые требования для верстки? Ведь в первом случае это должны быть максимально формальные требования, выполнение которых позволит не осложнять жизнь программистам и оптимизаторам, а технологи второго типа становятся полноценными архитекторами — от качества их решений зависит качество будущего проекта.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments54

Information

Rating
Does not participate
Registered
Activity