Как стать автором
Обновить
0
0
omcrew @omcrew

Пользователь

Отправить сообщение

Вышла версия 2.5 популярной свободной и бесплатной стрелялки от первого лица Nexuiz

Время на прочтение1 мин
Количество просмотров683
После года разработки вышел новый релиз Nexuiz 2.5, в котором отмечено около трех тысяч изменений. Nexuiz — популярная свободная (GPL2+), мультиплатформенная (GNU/Linux, Windows, OSX) 3D стрелялка от первого лица, базирующаяся на движке Dark Places, который является сильно переработанным движком первого Quake. Dark Places разрабатывался 6 лет, срок немаленький, который заставил меня вспомнить слова Вербицкого из его статьи Рогалики:
Отсутствие жесткого копирайта и свободный доступ к исходникам необходим для существования компьютерных игр как текста, то есть части живой субкультуры. В результате безумной и удушающей системы копирайтов, мэйнстримные компьютерные игры превратились в подобие голливудского фильма, застывшие, безжизненные и абсолютно не стимулирующие творчества, то есть ведущие (как и голливудские фильмы) к тотальному оглуплению публики. Голливуд — это геноцид души, ровно также как гитлеризм — это геноцид тела. И непонятно, что лучше.

Ссылочки:

Читать дальше →
Всего голосов 42: ↑30 и ↓12+18
Комментарии50

Новые подробности: Google OpenSocial будет запущен в четверг

Время на прочтение3 мин
Количество просмотров586

Сегодня были раскрыты некоторые подробности о больших амбициях Google в области социальных сетей. Впервые об этом сообщали здесь в сентябре, продолжение было ранее на этой неделе. Новый проект под названием OpenSocial (адрес будет доступен в четверг), превосходит все, о чем мы сообщали ранее. Это набор общих API, которые разработчики могут использовать для создания приложений, работающих в любых социальных сетях, пожелавших присоединиться.


Читать дальше →
Всего голосов 52: ↑52 и ↓0+52
Комментарии36

Социальные сети и формирование групп

Время на прочтение9 мин
Количество просмотров4.2K
Примечание: ниже расположен перевод академического исследования «Social Networks And Group Formation», рассматривающего некоторые аспекты выделения групп и формирования связей в социальных сетях.

«Принцип рычага» в действии



Пользователи страдают от избытка информации: по любому вопросу сейчас доступно гораздо больше сведений, чем человек способен воспринять. Как результат, люди опираются на знания других людей. Среди типичных вопросов «как?», «что?» и «почему?» ключевым является вопрос «кто?» (и, соответственно, ответ на него). Это влечет за собой необходимость знакомства и поддержания контакта с людьми, которые может помочь в каждом конкретном случае.

В контексте заявленной проблемы важным становится также понимание образования, развития и использования социальных сетей в интернете. Социальная сеть — это «группа людей (или организаций, или других социальных единиц), связи в которой являются социальными, а именно: дружбой, совместной работой или обменом информации» (Garton и др., 1997). Хотя интернет и является основным источником избыточной информации, он также позволяет пользователю эффективно управлять своими социальными сетями и таким образом получать ту информацию, которая ему необходима.

Эта область знаний находится на пересечении таких наук, как информатика, социология и математика. Ее исследователи изучают использование социальных сетей в общественных и деловых целях при помощи информационных и коммуникационных технологий (information communication technologies (ICTs)), в том числе, интернета. В этот статье рассматривается, как социальные сети, используя преимущества таких технологий — особенно, интернет-технологий, — создаются, развиваются и приносят пользу.

Социальные сети в интернете являются обширным полем для исследовательской деятельности, и любой научный обзор будет так или иначе базироваться на наборе академических публикаций. Данная статья концентрируется на последних исследованиях в области центра сети (centrality), силы силе связей, индивидуальности, доверии, активности и преимуществах. Без сомнения, статья несколько сложна для понимания, но призвана донести до разработчиков несколько полезных идей по реализации веб-приложений, активно использующих социальные сети.

Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии23

Восстановление битых пикселей ЖК

Время на прочтение1 мин
Количество просмотров128K
Сомневался в успешности метода, а также в том, что мой вечно салатовый пиксель, застывший полгода назад и постоянно мозоливший мне глаз, «станет на место». Но…
О чудо, помогло!
screenshot

Читать дальше →
Всего голосов 143: ↑142 и ↓1+141
Комментарии144

Семь заповедей быстрого чтения

Время на прочтение5 мин
Количество просмотров22K
— Чувак, наточи топор!
— Да некогда мне! Дрова нужно рубить!


Далеко не каждый хабраюзер может позволить себе систематический курс скорочтения, будь то «Доминанта» Олега Андреева (как одна из ступеней комплексного интеллектуального развития), или «Техника быстрого чтения» Хромова. В этой статье я попытаюсь простым языком описать основные приёмы, которые можно легко запомнить и стараться применять их на практике без отрыва от работы, или учёбы.

Читать быстро
Всего голосов 87: ↑78 и ↓9+69
Комментарии198

ВебАсист Интернет-магазин

Время на прочтение1 мин
Количество просмотров1.4K
Мы выпустили новый веб-сервис — ВебАсист Интернет-магазин.

ВебАсист Интернет-магазин

Сервис позволяет быстро (мгновенно) создать свой интернет-магазин или внедрить возможность заказа
на любой веб-сайт (блог) с помощью виджетов.
Подписаться на сервис — бесплатно.

Вот пример того, как можно внедрить возможность заказа на любой сайт (на примере демо-продукта Apple iPhone, 11995 рублей):
Добавить в корзину

Если нажать на кнопку, то процесс покупки начинается в лайтбоксе (как в этом примере) прямо на этой странице (если разрешено публиковать JavaScript; если не разрешено, то открывается новое окно).

Веб-сервис разработан на основе продукта Shop-Script (этот продукт тоже разработан нами).

В феврале 2008 планируем выпустить версию ВебАсист Интернет-магазин в открытых исходных кодах, которые можно будет поставить на свой сервер или shared-хостинг.
Всего голосов 32: ↑23 и ↓9+14
Комментарии67

69 признаков того, что не вы трахаете проект, а он вас

Время на прочтение4 мин
Количество просмотров1.9K
1. Ваша компания начала нанимать консультантов, чтобы было кого во всем обвинять
2. Ваш сервер для нагрузочного тестирования упал с ошибкой «Все, б$%, я больше не могу!»
3. Ваша системы контроля версий — это набор папок «revision 1», " revision 2",: «revision 465» и т. д. на сетевом диске
4. Ваше ТЗ состоит из трех страниц, написанных за 2 часа перед обеденным перерывом.
5. Вы стали подыскивать новую работу, потому что не хотите поддерживать код, который сейчас пишете.
6. Первая фраза на любом совещании «Есть хорошие новости, есть плохие. С каких начнем?»
7. Прогресс вашего проекта теперь измеряется числом исправленных багов, а не числом реализованных фич.
8. Вы подружились с уборщицей
Читать дальше →
Всего голосов 74: ↑64 и ↓10+54
Комментарии52

Телевизионные поля в компьютерной графике

Время на прочтение17 мин
Количество просмотров3.6K
«Опытным путём установлено, что для того, чтобы человеческий глаз мог видеть сглаженное и непрерывное изображение на экране телевизора, частота смены картинок должна быть не менее 50 раз в секунду (50 Гц)...»
Читать дальше →
Всего голосов 56: ↑50 и ↓6+44
Комментарии26

5 тыс «вебдванольных» логотипов за 5 минут

Время на прочтение1 мин
Количество просмотров657
В появившемся в мае этого года интернет-каталоге Веб 2.0 приложений Simple Spark на сегодняшний день зарегистрировано 5109 приложений.

По поводу пересечения рубежа в 5000 приложений, команда Simple Spark создала ролик, в котором за 333 секунды представляются логотипы этих самых приложений. В общем, предлагаю всем посмотреть это видео:
Ну что, кто сколько знакомых логотипов успел разглядеть? :)
Всего голосов 11: ↑8 и ↓3+5
Комментарии20

Интегрируем google maps

Время на прочтение2 мин
Количество просмотров2.9K
Google maps — отличное средство для картографии и сейчас мы будем интегрировать его себе на сайт благодаря открытому API. Интегрировать будем не только фиксированное положение но и произвольное, а именно — создадим в базе данных таблицу «locations», впишем там поля title, x, y.

Теперь нам надо редактировать каждое местоположение. Создадим полотно, где будет отображаться карта.
<div id="map" style="width: 250px; height: 250px"> </div>

Дальше — прикрутим вызов библиотеки из google. Поскольку я использую smarty, то я передаю ключ разработчика в виде переменной.
<script src="http://maps.google.com/maps?file=api&v=2&key={$google_maps_hash}" type="text/javascript"></script>


Теперь сделаем функцию, которая будет заниматься всей гразной работой — создавать карту в нашем div элементе, позиционировать согласно заданным координатам, устанавливать bubble. В случае если мы редактируем эти координаты, то функция будет по обратной связи прописывать в скрытые input-поля некоей формы «registration_form» новые координаты перенесённого pin-указателя.
<script type="text/javascript">
function load_map(x,y,title) {

if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(x, y), 13);
map.enableScrollWheelZoom();

point = new GLatLng(x, y);
marker = new GMarker(point);

map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.addOverlay(marker);
marker.openInfoWindowHtml(title);
/*
var mgr = new GMarkerManager(map);

GEvent.addListener(marker, "dragend", function() {
//var center = map.getCenter();
var strCenter=marker.getPoint();
marker.openInfoWindowHtml(document.forms['registration_form'].title.value);
document.forms['registration_form'].geo_x.value=strCenter.lat();//arrCenter[0];
document.forms['registration_form'].geo_y.value=strCenter.lng();//arrCenter[1];

});
*/
}
}
</script>
Всего голосов 19: ↑19 и ↓0+19
Комментарии30

Соединяем блог и Livejournal через XML-RPC

Время на прочтение2 мин
Количество просмотров1.1K
XML remote procedure call на самом деле очень простая процедура, при помощи которой я теперь могу писать в своём блоге и копировать статью в livejournal. С виду, самым простым решением вероятно выглядело бы создание такого процесса, где передача данных на сервер LJ происходил бы браузером. Достаточно создать отдельный iframe, в него поместить форму, в которую копировать содержание из другой формы и в итоге публиковать в LJ. Но — во первых это уродливо, во вторых не факт что так можно исхитриться.Гораздо проще и удобнее все данные передать через xml-rpc. Для этого — устанавливаем готовую библиотеку и используем функцию.. 

function post2livejournal($subject,$event,$time=0) {
require_once('lib/xmlrpc.inc');
$lj_userid='my_livejournal_username';
$lj_passwd='my_secret_password';

if (!$time)$time=time();
$year=date('Y',$time);
$month=date('m',$time);
$day=date('d',$time);
$hour=date('H',$time);
$minute=date('i',$time);

$client=new xmlrpc_client("/interface/xmlrpc", "www.livejournal.com", 80);

$params = new xmlrpcval( array(
'username' => new xmlrpcval($lj_userid,'string'),
'password' => new xmlrpcval($lj_passwd,'string'),
'ver' => new xmlrpcval('1','string'),
'lineendings' => new xmlrpcval('pc','string'),
'event' => new xmlrpcval($event,'string'),
'subject' => new xmlrpcval($subject,'string'),
'year' => new xmlrpcval($year,'int'),
'mon' => new xmlrpcval($month,'int'),
'day' => new xmlrpcval($day,'int'),
'hour' => new xmlrpcval($hour,'int'),
'min' => new xmlrpcval($minute,'int')),'struct'
);

$msg = new xmlrpcmsg('LJ.XMLRPC.postevent');
$msg->addparam($params);
$client->setDebug(0);
$result = $client->send($msg);
}



А что-бы не появилось ошибок типа
Application failed during request deserialization проверьте кодировку в библиотеке — наверняка пытается utf отослать как iso.


… так почему на habrahabr нет XML-RPC?
Всего голосов 14: ↑12 и ↓2+10
Комментарии12

Краткий обзор MQ (Messages queue) для применения в проектах на РНР. Часть 2

Время на прочтение4 мин
Количество просмотров7.2K
Мы продолжаем исследовать тему такого класса ПО как очереди сообщений применительно к РНР веб-системам. В прошлой статье мы рассмотрели некоторое ПО, в частности представителей как самой верхней области (Apache Active MQ, возможности которого находятся на уровне уже корпоративного ПО), так и достаточно простые варианты, например, MQS. Но не рассмотренными остались еще несколько достаточно интересных проектов, так что наше исследование продолжается.
Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии6

Краткий обзор MQ (Messages queue) для применения в проектах на РНР. Часть 1

Время на прочтение4 мин
Количество просмотров95K
Параллельно к основной работе, я в «фоне» обдумываю и прикидываю реализации архитектуры для игровых проектов (напомню, что основная область моих интересов и работ — создание онлайновых браузерных игр). Последнее время я все чаще и чаще возвращаюсь к мысли, что интересно было бы реализовать основной игровой сервер на основе очередей сообщений (MQ или Messages queue). То есть, движок такой игры будет представлять собой набор компонентов, которые будут общаться между собой посредством асинхронных сообщений, а каждый компонент может быть как генератором сообщений, так и подписчиком, то есть исполнять другие сообщения.

Такой подход, насколько я понимаю, широко применяется в мире Java, там для этого есть стандарт Java Message Service (JMS) и применяются брокеры сообщений и на этом базируется архитектура Enterprise service bus (ESB), например, Apache ServiceMix. Но для нас это пока высокая сфера крупных проектов, а в специфике веба и веб-ориентированных приложений я бы хотел рассмотреть, можно ли что-то сделать подобное, но с меньшими затратами и обеспечить приложению отказоустойчивость, распределение нагрузки и асинхронную обработку. И конечно, очень желательно, чтобы это было реализовано на РНР как основном языке реализации всех компонентов сервера.
Читать дальше →
Всего голосов 49: ↑45 и ↓4+41
Комментарии32

FindIcons.com — новый поисковик иконок

Время на прочтение1 мин
Количество просмотров5.3K
image

Сегодняшним утром получил информационное письмо с электронного ящика сайта browsershots.org об открытии нового сервиса— Find Icon и предложением активировать аккаунт с таким же ником как на browsershots, а значит — это их очередной новый проект (что не может не радовать, т.к. часто пользуюсь их проектами).

Читать дальше →
Всего голосов 50: ↑33 и ↓17+16
Комментарии34

BackTrack 4 Final Released

Время на прочтение1 мин
Количество просмотров9.4K
image Наконец-то выпущен BackTrack 4 Final. Hаряду с релизом вас ждут замечательные новости, усовершенствования и нововведения. BackTrack 4 прошел длинный тернистый путь от бета версии в прошлом году. Мы решили повременить с выпуском финальной версии до того момента, пока она не будет доведена до совершенства в каждом аспекте.

Читать дальше →
Всего голосов 46: ↑35 и ↓11+24
Комментарии81

Демон конвертации видео в FLV

Время на прочтение3 мин
Количество просмотров3.7K
Решил поделиться недавно написанным кодом демона для видеохостинга.
Принцип демона прост. Демон смотрит в папку, куда загружаются видеофалы, и при появлении там новых, копирует в другую папку, запускает в фоне процесс конвертации, создает превьюшку, и копирует полученное видео в папку пользователя.
Читать дальше →
Всего голосов 40: ↑39 и ↓1+38
Комментарии31

Что нужно настроить в mySQL сразу после установки?

Время на прочтение5 мин
Количество просмотров147K
Вольный перевод довольно старой статьи с MySQL Performance Blog о том, что лучше сразу же настроить после установки базовой версии mySQL.
Читать дальше →
Всего голосов 95: ↑88 и ↓7+81
Комментарии24

«Hello, World!» на Qt

Время на прочтение6 мин
Количество просмотров90K
Qt — это кросс-платформенный инструментарий разработки ПО на языке программирования C++. Есть также «привязки» ко многим другим языкам программирования: Python — PyQt, Ruby — QtRuby, Java — Qt Jambi, PHP — PHP-Qt и другие.
Позволяет запускать написанное с его помощью ПО в большинстве современных операционных систем путём простой компиляции программы для каждой ОС без изменения исходного кода. Включает в себя все основные классы, которые могут потребоваться при разработке прикладного программного обеспечения, начиная от элементов графического интерфейса и заканчивая классами для работы с сетью, базами данных и XML. Qt является полностью объектно-ориентированным, легко расширяемым и поддерживающим технику компонентного программирования.
В этой статье я покажу как написать простую программу «Hello, World!» с использованием библиотеки Qt4
Итак, приступим
Всего голосов 83: ↑74 и ↓9+65
Комментарии72

Проверка орфографии с помощью Google

Время на прочтение2 мин
Количество просмотров15K
Иногда в проекте требуется проверить данные на предмет орфографических ошибок, не полагаясь на познания пользователя по части языков. Тут нам сможет помочь компания Google, с таким их сервисом, как проверка орфографии, используемым в Google Toolbar. Но, к сожалению, Google не предоставляет открытого API для работы с ним.

Итак, краткое описание:
Для того, чтобы проверить текст нам нужно отослать его в POST на https://google.com/tbproxy/spell?lang=ru, где для смены языка следует заменить значение параметра lang на соответствующий по ISO 3166-1 alpha-2. Текст оформляется в XML вида:
<?xml version="1.0" encoding="UTF-8" ?><br/>
<spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1"><br/>
 <text>Текст для проверки</text><br/>
</spellrequest>
ignoredups — подсветка повторов
ignoredigits — считать цифры ошибками
ignoreallcaps — не проверять слова написанные капсом (подсказал pointum)

Если всё успешно, мы получаем ответ вида
<?xml version="1.0" encoding="UTF-8"?><br><spellresult error="0" clipped="0" charschecked="272"><br> <c o="27" l="13" s="0"></c><br> <c o="73" l="11" s="1">орфографии и орфографии</c><br> <c o="190" l="11" s="1">пользоваться</c><br> <c o="226" l="13" s="0">пред оставляет пред-оставляет</c><br></spellresult>
Атрибуты тега spellresult:
error — произошла ли ошибка
charschecked — количество проверенных символов

В нем идет перечисление допущенных ошибок (теги c), их параметры:
o — начало исходного слова в тексте
l — длина этого слова
s — точность результата

В самом теге c содержатся предполагаемые варианты написания слов, разделенные символом \t.

P.S. Когда этот текст уже был написан, случайно наткнулся на статью в блоге Paul Welter, которая, в принципе, описывает тоже самое…


UPD: Пользователь wayly написал на PHP класс для проверки текста с помощью этого сервиса, скачать можно по ссылке proxysoft.ru/files/spellchecker.zip (зеркало).

UPD2: mezhevikin подсказал ajax-решение с использованием этого сервиса — orangoo.com/labs/?page_id=3

UPD3: Список поддерживаемых языков

_________
Текст подготовлен в ХабраРедакторе
Код подсвечен в Source Code Highlighter
Всего голосов 88: ↑86 и ↓2+84
Комментарии45
1

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность