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

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

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

Web – P2P — Web

Время на прочтение6 мин
Количество просмотров15K
Доброе время суток, дорогой %username%.

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

Под катом общие размышления, обзор текущего состояния проекта, перспективы и, конечно, немного трафика.

Если интересно — welcome под кат.
Читать дальше →
Всего голосов 62: ↑59 и ↓3+56
Комментарии65

Использование runit для своих сервисов

Время на прочтение3 мин
Количество просмотров52K
Супервизор сервисов runit позиционируется как замена стандартным скриптам инициализации Unix.

Но на практике оказалось, что runit идеален для управления сервисами безотносительно инициализации и т.п.

Введение


Супервизор берёт на себя такой функционал, как:
  • превращение любого процесса в демон;
  • логгирование вывода процесса и ротирование логов;
  • запуск, остановка, рестарт, запрос состояния, управляющие скрипты для init.d;
  • выключение и запуск сервисов автоматически при появлении новых сервисов в списке либо удалении старых из списка;
  • возможность ведения нескольких независимых списков сервисов одновременно (например, для каждого пользователя отдельно и для системы в целом);
  • удобный API для управления сервисами.

Для большинства операционных систем runit уже входит в репозитории пакетов (apt-get install runit). Кроме того, мы имеем уже готовый набор рецептов для популярных сервисов (nginx, apache etc.).

Читать дальше →
Всего голосов 43: ↑39 и ↓4+35
Комментарии54

Ещё два открытых проекта от Opera Software

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


Сегодня мы обнародовали два новых проекта, входящих в наш Open Source портфолио — OperaWatir и OperaDriver. Как и Opera Dragonfly, оба проекта относятся к средствам разработки, облегчающим несладкую жизнь веб-программиста. Если говорить кратко, то данные инструменты позволяют создавать автоматические тесты, имитирующие действия бешеного пользователя, зашедшего на ваш веб-сайт и без какой-либо чёткой цели кликающего ссылки, вводящего всякую тарабарщину в текстовые поля или заполняющего любые формы, подвернувшиеся под руку. В общем, в реале подобного уникума вряд ли встретишь, но на всякий случай лучше проверить свою работу на стойкость — наша жизнь, знаете ли, всякие фокусы любит выкидывать.
Читать дальше →
Всего голосов 83: ↑76 и ↓7+69
Комментарии28

Экстремальный аджайл — танцуют все!

Время на прочтение6 мин
Количество просмотров13K
Всем привет! На протяжении года мы разрабатываем сервис «Эльба». В нашем проекте мы ввели практики аджайла для всей команды: для аналитиков, интерфейсологов, инженерных психологов, документаторов, тестировщиков и продвиженцев, а не только для разработчиков. Кажется, получилось хорошо, и мы хотим поделиться этим опытом.
Почему экстремальный?
Всего голосов 125: ↑114 и ↓11+103
Комментарии84

Web разработка под iPhone

Время на прочтение4 мин
Количество просмотров16K
Пока все Интернет сообщество со всех сторон продолжает обсуждать, как же можно приспособить iPad для работы, я бы хотел все же вернуться к iPhone. По профессии я программист и люблю новые технологии. И очень мне уж хотелось сделать приложение для своего телефона, но вот как-то душа к Objective C не лежит пока что, да и макбука с лицензией разработчика тоже пока нет. И мне стало интересно, могу ли используя знания html и js написать что-нибудь. Оказалось что да, и способов очень даже много. О них – под катом.
Читать дальше →
Всего голосов 52: ↑45 и ↓7+38
Комментарии35

Пишем простое приложение на jQuery Mobile

Время на прочтение8 мин
Количество просмотров59K
imageФреймворк jQuery Mobile вышел уже относительно давно, но только сейчас мне удалось им заняться. До этого имел дело с jQTouch и Sencha Touch. У каждого из них есть свои плюсы и минусы, но сегодня речь пойдет именно про разработку на jQuery Mobile. Для получения базового опыта я опишу создание простого приложения с несколькими страницами, интеграцией с твиттер и гуглокартами, ну и набором базовых элементов. Поехали!
Читать дальше →
Всего голосов 71: ↑71 и ↓0+71
Комментарии42

В помощь веб-разработчику: эмуляторы мобильных устройств

Время на прочтение7 мин
Количество просмотров25K
Я думаю некоторые из веб-разработчиков сталкивались с задачей создания сайтов и сервисов под мобильные платформы. И проблема возникает в том момент, когда надо протестировать свое творение. И если найти тот или иной девайс все же не проблема, то протестировать на максимальном количеством устройств достаточно сложно. И тут на помощь приходят ОНИ — эмуляторы. В данном посте я рассмотрю вопросы установки и запуска эмуляторов следующих мобильных устройств, с целью запуска на них нужного сервиса: Win Mobile, iPhone, BlackBerry, Android, Symbian^3.
Читать дальше →
Всего голосов 76: ↑73 и ↓3+70
Комментарии36

Плавная анимация на iPhone и iPad

Время на прочтение3 мин
Количество просмотров20K
Всем известно, насколько популярен стал мобильный браузинг. На современных устройствах веб все меньше и меньше уступает настольному оригиналу. Однако есть один камень преткновения: скорость. Хоть на выходе мы и получаем красиво отрисованную веб-страницу, производительность рендеринга и JavaScript оставляет желать лучшего.



Особенно это заметно на всевозможных слайдшоу: на мобильных и планшетах они тормозят, глючат, мерцают и всячески портят впечатления. Сегодня мы заставим анимацию работать идеально на iPhone и iPad.
Читать дальше →
Всего голосов 54: ↑47 и ↓7+40
Комментарии27

8 полезных сервисов для веб-разработчика и дизайнера

Время на прочтение2 мин
Количество просмотров36K
Под катом — описание восьми сервисов, которые могут заметно облегчить жизнь веб-разработчика, верстальщика или дизайнера.
Читать дальше →
Всего голосов 337: ↑324 и ↓13+311
Комментарии59

Проектируем рейтинговое оценивание

Время на прочтение5 мин
Количество просмотров1.2K
Часто требуется реализовать возможность рейтингового оценивания того или иного объекта (заметки, комментария, цитаты, фотограммы, видеоролика и т. д.) посетителями сайта. Как это запрографировать?

Прежде всего мы имеем объект оценивания и субъект оценивания. Последним могут быть, например, зарегистрированные пользователи, незарегистрированные пользователи (гости) и пр.

Для того, чтобы обеспечить слабую связанность конкретных сущностей предметной области, к которым мы привязываем возможность рейтингового голосования, с модулем, реализующим нашу задачу, мы выделяем отдельные классы для объекта (Rating_Object) и субъекта (Rating_Subject). Оба эти класса — конкретные и реализованы как active record. Чтобы иметь возможность привязывать всяческие статьи и фотограммы к экземплярам Rating_Object, мы предусматриваем интерфейс Rating_Ratable:

interface Rating_Ratable {
    /**
     * @return Rating_Object
     */
    public function asRatingObject();
}


Читать дальше →
Всего голосов 58: ↑44 и ↓14+30
Комментарии60

Асинхронное программирование, коллбеки и использование process.nextTick()

Время на прочтение7 мин
Количество просмотров20K
Несмотря на то, что большинство из изучающих Node.js в какой-то мере знают JavaScript и имеют опыт использования его в контексте браузеров, при обсуждении практических моментов многие встречаются с трудностями в понимании работы стандартной библиотеки и механизмов обеспечения асинхронного выполнения кода, содержащего множество вложенных коллбеков. Также часто возникает недопонимание, Я постараюсь вкратце описать порядок работы event loop в Node.js и рассказать, на какие моменты стоит обратить внимание при написании качественного асинхронного кода. Думаю, что статья будет полезна и тем, кто занимается написанием производительных фреймворков для браузеров.

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

Будущее CSS: интервью с Эриком Мейером

Время на прочтение8 мин
Количество просмотров4.8K
Эрик Мейер — широко-известный эксперт в области стандартов HTML и CSS, работающий в области веб-технологий с 1993 года. Им были изданы такие книги, как «Каскадные таблицы стилей. Подробное руководство» (O’Reilly), «Справочник разработчика по CSS 2.0» (Osborne/McGraw-Hill) и «Эрик Майер о CSS» (New Riders). Так же он принимал участие в многочисленных конференциях, посвященных веб-стандартам, применению CSS и веб-дизайну.

Интервью у него берет Джозеф Лоуери — автор бестселлеров «Dreamweaver CS3 Bible» и «CSS Hacks and Filters». В данный момент он заведует маркетинговым отделом в компании WebAssist.


Автор: Джозеф Лоуери
Оригинал: http://adobe.com/newsletters/edge/december2007/articles/article5/index.html
Переводчик: Александр Мусаев

Джозеф Лоуэри: Во время подготовки к этому интервью, я познакомился с вашей статьей, написанной в июне 1999 года о поддержке браузерами CSS и будущем этой технологии. Никто не сомневается в вашем опыте, тем не менее, как именно вам удается делать такие прогнозы?

Эрик Мейер: Согласно изначальному плану, технология CSS разделена на модули, каждый из которых формировался на определенном этапе. Сложность здесь состоит в том, что каждый из таких временных интервалов, как правило, сильно заторможен. Даже у самых «простых» модулей формируется многолетней история развития.
Читать дальше →
Всего голосов 40: ↑39 и ↓1+38
Комментарии20

5 Советов верстальщику

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

И так, моя пятерка советов верстальщику:



1. Никогда не слушай ничьих советов по верстке, только если ты не сам спросил.

2. Будь внимательным к мелочам, ведь они в конечном счете составляют впечатление о твоей работе.

3. Будь дисциплинированым. Пиши код без ошибок, по самым строгим стандартам. Это не дешевые понты, а основной способ избежать ошибок и не “потеряться” в коде.

4. Интересуйся тем, что ты делаешь. Изучай разносторонне даже те вопросы, на которые, как тебе кажется, у тебя уже есть ответ.

5. Инспектируй время от времени свои старые работы. Если при рассмотрении одной из них окажется что ты совсем ничего не хотел бы в ней изменить — пора подумать о смене профессии ;)

Upd: Все советы на сегодняшний день

* Александр RMcreative Макаров
* Виталий Харисов
* Никита Селецкис
* Александр Исаков
* Алекс Iline
* Юрий Дроздов
* The Webmakers Lounge
* Марат Таналин
* Вадим Макеев
* Юрий Артюх
* Павел Корнилов
* kizu.ru
Всего голосов 65: ↑47 и ↓18+29
Комментарии95

Простой способ провести CSS-debug

Время на прочтение1 мин
Количество просмотров7.1K
Болтаясь сегодня по интернету в поисках чего-нибудь интересненького, наткнулся на вот такой простой (и столь же замечательный в своей простоте) способ отыскать «неполадку» в верстке.

CSS

* { outline: 2px dotted red; }
* * { outline: 2px dotted green; }
* * * { outline: 2px dotted orange; }
* * * * { outline: 2px dotted blue; }
* * * * * { outline: 1px solid red; }
* * * * * * { outline: 1px solid green; }
* * * * * * * { outline: 1px solid orange; }
* * * * * * * * { outline: 1px solid blue; }
Цвет, тип и размер обводки каждый может выбрать по вкусу.

Поддержка браузерами:


Firefox Opera Google Chrome Safari

К сожалению, в браузерах от Microsoft версий 6 и 7 (в 8-й — все окей) свойство outline не поддерживается. Для них, пожалуй, придется использовать border.
Всего голосов 103: ↑96 и ↓7+89
Комментарии56

1001-ый способ вертикального выравнивания

Время на прочтение2 мин
Количество просмотров128K
О вертикальном выравнивании блока неизвестной высоты по центру или низу родителя сказано много. Есть способы, основанные на display:table-cell для хороших браузеров (без кавычек) и expression для IE, способы, основанные на относительном позиционировании (могут плохо работать при переполнении). В этой заметке будет описан способ, работающий на особенностях такого мощного отображения, как встроенный блок (display:inline-block).
Читать дальше →
Всего голосов 62: ↑51 и ↓11+40
Комментарии46

Fugue Icons 3.0

Время на прочтение1 мин
Количество просмотров4.9K
Fugue Icons 3.0

Всеми любимый набор иконок — Fugue, обновился (16 июля) до версии 3.0. Изменения небольшие, были добавлены 32 гипер-маленькие иконки.

Мега-превью! (3Mb)
Иконки
Иконки + исходники

А вот и сами изменения...
Всего голосов 105: ↑93 и ↓12+81
Комментарии27

Обфускация JavaScript

Время на прочтение5 мин
Количество просмотров196K
В статье собраны всем известные методы и предельно извращенные. Эту статью я решил написать после недавнего прочтения поста в блоге Badass JavaScript и решил её дополнить своими находками.

Первый способ


Он всем известен — обфускация минимизаторами такими как JS Packer, JSmin, YUI Compressor, Closure compiler или можно просто пугуглить «JavaScript Obfuscator» и найдется ещё сто штук разных обфускаторов.
Они превращают существующий код
function MyClass(){
    this.foo = function(argument1, argument2){
        var addedArgs = parseInt(argument1)+parseInt(argument2);
        return addedArgs;
    }
    var anonymousInnerFunction = function(){
        // do stuff here!
    }
}

В какой-то такой вид:
function MyClass(){this.foo=function(c,b){var d=parseInt(c)+parseInt(b);return d};var a=function(){}};

Или такой:
var _0xd799=["\x66\x6F\x6F"];function MyClass(){this[_0xd799[0]]=function (_0xefcax2,_0xefcax3){var _0xefcax4=parseInt(_0xefcax2)+parseInt(_0xefcax3);return _0xefcax4;} ;var _0xefcax5=function (){} ;} ;

Или вот такой:
eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('4 0="3 5!";9 2(1){6(1+"\\7"+0)}2("8");',10,10,'a|msg|MsgBox|Hello|var|World|alert|n|OK|function'.split('|'),0,{}))

Но ничего не стоит его восстановить с помощью jsbeautifier.org либо просто убрать eval и получить исходный код, многое потеряем, но смысл кода восстановим. Ну и с первого взгляда мы видим, что перед нами JavaScript.

Все это были цветочки под катом жесткие методы обфускации.
Читать дальше →
Всего голосов 171: ↑165 и ↓6+159
Комментарии85

Совместная жизнь Agile и UCD на примере реального проекта

Время на прочтение8 мин
Количество просмотров2.4K
Результатом сотрудничества читателей Usability.by стал совместный перевод статьи «Case study of agile and UCD working together».

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

Этот реальный случай демонстрирует, как команда проектирования User Experience сайта ComputerWeeekly была интегрирована в группу разработки, придерживающейся гибких методологий. Важно заметить, что сами по себе методы, которые мы использовали, не гарантируют успешное завершение проекта. Люди могут как сделать, так и провалить любой проект. Найти и удержать «правильных» людей — ключ к успеху проекта.
Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии6

Закончен предварительный перевод книги «Волшебство Git»

Время на прочтение1 мин
Количество просмотров26K
Я, как и многие программисты, после знаменитого выступления Линуса Торвальдса о Git на Google Talks заинтересовался распределенными системами управления версиями, а в особенно Git.

Я довольно таки свободно читаю на английском, но мне приятнее читать на русском языке, при условии нормального перевода.
Существует замечательная книга «Git Magic» Бена Лина (Ben Lynn).
Благодаря труду многих людей вышел первый черновой вариант этой книги. Всех желающих улучшить перевод — приглашаю под кат.
Читать дальше →
Всего голосов 81: ↑77 и ↓4+73
Комментарии59

Технический отчет запуска Eventr.com, цифры

Время на прочтение4 мин
Количество просмотров1.5K
image По просьбам хабралюдей выкладываю короткий технический отчет.
Напомню, Eventr – это web-сервис, в котором можно удобно читать RSS-ленты, в два клика обмениваться, делиться интересными записями с другими, вести свой блог.

Мы стартовали днем в воскресенье, 11-го июля, через час легли под хабраэффектом. Собственно, наши волшебные заклинания и цифры под катом.

О чем будет сказано:
  1. Некоторые технические сложности
  2. RSS/Atom читалка, цифры
  3. Хабраэффект, цифры
  4. Грабли
  5. Mongodb, nodejs, redis
Читать дальше →
Всего голосов 92: ↑81 и ↓11+70
Комментарии93

Информация

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