Pull to refresh
179
0
spmbt @spmbt

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

Send message

SCSS — новая порция глазури от Sass

Reading time3 min
Views55K
imageПоследнее время я практически не занимался версткой, и пропустил выход Sass3, в котором реализовано расширение SCSS (Sassy CSS). Это именно расширение для CSS без «искажения» синтаксиса — то есть любой валидный CSS документ является и полностью валидным SCSS документом. В посте я проведу сравнение с уже существующими препроцессорами такими как Sass и Less. О которых уже писалось на хабре: Sass, Less. Но та информация немного устарела: в частности изменился синтаксис Sass.

Список того о чем мечтали CSS дизайнеры, но боялись говорить в слух.
Total votes 54: ↑43 and ↓11+32
Comments37

Safari Reader для Chrome

Reading time1 min
Views14K
С выходом в свет новой версии яблочного браузера Safari 5, все были поражены новой возможности, которая стала известна под названием Safari Reader. Данная функция позволяет в более удобном формате читать статьи и блоги, убирая весь мусор, который может отвлекать внимание.

Safari 5 - Safari Reader
Читать дальше →
Total votes 85: ↑65 and ↓20+45
Comments65

Индустриальная революция. Часть 4. Как построить свою мечту

Reading time5 min
Views27K
imageНиже приводится перевод новой части увлекательной статьи «In the Next Industrial Revolution, Atoms Are the New Bits» журнала Wired. В прошлый раз я рассказал о Rally Fighter, виртуальных мини-фабриках и 3D-принтере за 1000$; а сегодня вы узнаете, как можно трансформировать свою великую идею в великий продукт, другими словами, как построить свою мечту!

Чтобы увидеть, как создавались инновации в 20 веке, посмотрите фильм «Озарение гения» («Flash of Genius»). Фильм, основанный на реальных событиях, начинается в шестидесятые, и рассказывает грустную историю изобретения стеклоочистителей лобового стекла автомобиля, работающих с паузой. Изобретатель, профессор Боб Кирнс, – закрывается в своей мастерской, пока не получает работающий прототип. Вместо того, чтобы продать технологию автогигантам, Кирнс решает основать собственную компанию для того, чтобы самостоятельно производить стеклоочистители. Ford подписывает контракт по установке своего изобретения на одну из новых моделей. Это значит, что Кирнсу нужна фабрика! Он берет в аренду огромное здание и наполняет его сборочными линиями, погрузчиками, и другой тяжелой техникой – классическая сцена индустриального века.
Читать дальше →
Total votes 51: ↑45 and ↓6+39
Comments20

Как создавалась Айчиталка. Часть 1: движок

Reading time10 min
Views28K
Совсем недавно мы выпустили в свет первую бета-версию нашей онлайн-читалки, с которой можно ознакомиться, почитав книгу Михаила Лермонтова «Герой нашего времени». Эта читалка — результат почти семимесячной работы, пять из которых ушло только на разработку движка. Казалось бы, в интернете уже есть бесплатные и открытые JavaScript-движки для чтения электронных книг и такой долгий срок может вызвать сомнения в профпригодности разработчика (то есть меня). Но есть одно большое и жирное «НО». Мы поставили перед собой слишком амбициозную и трудновыполнимую задачу: мы хотели использовать один и тот же движок на разных устройствах, в том числе маломощных, таких как айфон или электронная читалка.

В чём же заключается трудновыполнимость задачи? В первую очередь — в очень низкой скорости работы веб-приложений на айфоне. Например, мобильный Сафари по моим прикидкам работает раз в 100 медленнее своего десктопного собрата. Если на декстопе одна и та же операция выполняется 10 мс и совершенно незаметна для пользователя, то на айфоне она может выполняться больше секунды. Для сравнения: первая версия движка разбивала небольшую главу на страницы примерно за 15 секунд. Сейчас, спустя полгода, он делает то же самое менее, чем за секунду и вполне сносно работает в нашем приложении booq.

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

Читать дальше
Total votes 165: ↑151 and ↓14+137
Comments98

Монетизация проекта: 8 + 4 способa заработать ничего

Reading time6 min
Views3.5K
WEBO SoftwareЭто, видимо, уже третья статья (первая, вторая) на тему построения софтверного бизнеса в России «с нуля». В прошлой просили рассказать о наших моделях монетизации — рассказываю (акцент сделан на самих моделях, а не на построении каналов продаж программного обеспечение вообще.)

Если коротко, то выбор модели монетизации (по моему личному твердому убеждению) индивидуален для каждого проекта/бизнеса. И сама модель может и должна изменяться с течением времени и появлением новых тенденций/парадигм на рынке.

Но все по порядку.
Читать дальше →
Total votes 80: ↑62 and ↓18+44
Comments60

Выделение строк в многостраничных списках на веб

Reading time4 min
Views2.3K
На веб-сайтах нередко встречаются списки и таблицы, разбитые на много страниц с возможностью перехода между ними. Иногда над строками таких списков можно выполнять какие-то операции. Вот несколько примеров:
  • Модерация веб-форума: массовый перенос, блокировка, удаление тем.
  • Почтовый клиент: отметить выделенные письма как (не)прочитанные, добавить метку, перенести в спам.
  • Система обработки научных данных: выделить интересующие строки в подмножество, пометить цветом, как заслуживающие внимания.
Во всех этих случаях проблемы с юзабилити возникают, когда страниц больше одной. Можно ли выделить все строки списка, а не только текущую страницу? А все без одной? Правильно инвертировать выделение? Выделить все строки от 1245-й и до конца, при том, что на одной странице всего 100 строк, а всего строк в списке 5000?

Я придумал простую штуку, которая позволяет решить все эти эти задачи. Она внедрена в одном коммерческом веб-приложении и хорошо себя зарекомендовала. Не видел более удобного решения, поэтому представляю на суд общественности.
Читать дальше →
Total votes 54: ↑44 and ↓10+34
Comments43

Grails, jQuery, AJAX: первое знакомство

Reading time2 min
Views6.4K

Добавляем jQuery в Grails


Собственно никаких проблем с AJAX в Grails не наблюдается: контроллеры могут спокойно возвращать JSON-данные, GSP-страницы могут использовать соответствующие вспомогательные тэги.

По умолчанию Grails дружит с Prototype JS. Однако можно легким движением руки установить плагин поддержки jQuery.
Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments1

Кроссбраузерные HTML инклуды \(^_^)/

Reading time7 min
Views6.5K
Пусть у нас есть простенький хтмльчик index1.htm

<!DOCTYPE html><br><html><br>    <head><br>        <title>Xbrowser HTML includes</title><br>        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><br>    </head><br>    <body><br>        <h1>First file</h1><br>    </body><br></html>

Как известно, хтмл поддерживает инклуды только через iframe/object, но с ними не очень удобно работать из яваскрипта.

Можно, конечно, прописать в каждую подключаемую страницу скрипт типа такого

new function(){<br>    var frame= window.frameElement<br>    if( !frame ) return<br>    var parent= frame.parentNode<br>    var body= document.getElementsByTagName( 'body' )[0]<br>    var child;<br>    while( child= body.firstChild ) parent.insertBefore( child, frame )<br>    parent.removeChild( frame )<br>}

Он переносит своё содержимое в родительский документ и удаляет фрейм. Но в случае отключённоо яваскрипта мы получим окошко ифрейма не подстраивающееся под размер содержимого.
А дальше - жёсткое порево
Total votes 66: ↑52 and ↓14+38
Comments132

Javascript виджет авторизации OpenID

Reading time3 min
Views7.1K
Где то полгода назад я сильно увлекся OpenID и всем что с ним связанно. Моим главным занятием в это время стало — неспешное чтение спецификаций, форумов, блогов и хабрапостов OpenID тематики.

Все знания, которые мной были получены за это время, я «материализовал» в проекте компании, в которой собственно я работаю.

Изучая спецификацию OpenID и прочих его расширениях (SREG, AX) и надстройках, мне пришла идея разработать JavaScript виджет со своим API-прослойкой, в помощь другим разработчикам нежелающим «коротать» дни и ночи изучая спеки различных способов авторизации и их расширений.

Собственно об этом далее.
Читать дальше →
Total votes 91: ↑88 and ↓3+85
Comments70

Какие вопросы задавать клиентам перед дизайном их сайта?

Reading time3 min
Views28K
Перевод свеженького поста «Questions to ask clients before designing their website» Брайана Хоффа, автора блога «The Design Cubicle».

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

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

Некоторые из нижеприведенных вопросов могут быть применены не только для веб-дизайна, так что я разделил их на группы, чтобы клиенту было понятней.
Читать дальше →
Total votes 65: ↑54 and ↓11+43
Comments70

Unlimited IE one-time CSS expressions

Reading time3 min
Views1.4K
В поддержку дней CSS expressions на хабре

Думаю все, кто сталкивался с решением каких-нибудь проблем в IE<8 знает про CSS expressions и про «одноразовые» CSS expressions, которые применяются к элементу только один раз, тем самым не создавая постоянной нагрузки на процессор. Обычно это решается так:
.my-class {
    behavior: expression(someMagick(), runtimeStyle.behavior = 'none');
}
А что, если хочется использовать больше свойств?
Total votes 33: ↑31 and ↓2+29
Comments11

JetScreenshot.com — покажи что видишь в три клика

Reading time4 min
Views2.6K

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

Jet Screenshot – это один из сервисов, попробовав пользоваться которым раз, уже не можешь отказаться.


В основу сервиса заложена очень простая идея
читаем дальше...
Total votes 62: ↑36 and ↓26+10
Comments119

Поднимаем софтверный бизнес

Reading time8 min
Views1.9K
WEBO SoftwareЭто вторая статья о становлении софтверного (интернет-) бизнеса в России (первая тут). В ней я собираюсь раскрыть некоторые ключевые моменты адаптации продукта под рынок (под требования пользователей), о преодолении тенологической пропасти, и чуть-чуть о реалиях российского бизнеса.

Данный топик хочу приурочить к тому, что год назад (может, чуть раньше или чуть позже) появился продукт WEBO Site SpeedUp (ранее Web Optimizer). Мысли немного сумбурны, но, видимо, для каждого направления все сильно специфично, поэтому ценными будут только общие идеи, направления и подходы к решению проблем (в чем я искренне надеюсь :). Здесь и далее речь идет о создании коробочного решения (а не софтверном аутсорсе).
Читать дальше →
Total votes 69: ↑62 and ↓7+55
Comments23

Два протокола управления проектами

Reading time5 min
Views5.2K
Доброго времени суток.

Я пришел в управление проектами из программирования. То есть, нет так давно, я еще писал код и мне это очень нравилось. Меня мало беспокоили волнения, происходящие где-то на верху — «у менеджеров». Все поменялось в 2004, когда меня назначили тим лидом.

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

Тогда я начал задумываться о причинах такой ситуации, начал читать посты и книги по менеджменту. Как программист, находящийся под впечатлением революционных архитектурных решений — таких, как MVC и паттерны Фоулера, я полагал, что есть *техническое* решение наших проблем с менеджментом — нужно его только отыскать и применить.

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

Сейчас я расскажу о моем текущем видении проблемы, а также опишу одну из возможных стратегий совместного использования этих двух протоколов.
Читать дальше →
Total votes 84: ↑77 and ↓7+70
Comments39
12 ...
57

Information

Rating
Does not participate
Location
Россия
Registered
Activity