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

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

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

Индикатор прогресса с помощью HTML5 Canvas

Время на прочтение6 мин
Количество просмотров7.3K
Привет, Хабр!
Всё больше статей появляется про Canvas, и это не может не радовать. Основы, будем надеяться, уже изучены, а мне хотелось бы поделиться примером возможного практического использования canvas, а именно создать анимированный индикатор прогресса.

Для нетерпеливых результаты эксперимента можно посмотреть здесь: http://pastehtml.com/view/1d7z824.html, а также скриншот конечного результата:


Прогресс-бар получился довольно простой, но в то же время в стиле веб 2.0 — закругленный (конечно же!), с элементами глубины и объема: то есть тенями и градиентами.

За подробностями прошу под кат.
Приступить к созданию
Всего голосов 93: ↑88 и ↓5+83
Комментарии58

Выходцы из Google и Facebook показали «идеальный» таск-трекер

Время на прочтение1 мин
Количество просмотров9.9K
Дастин Московиц (технический основатель Facebook) и Джастин Розенштайн (в прошлом продакт-менеджер в Google и Facebook) подняли порядка $10 млн финансирования и готовят смерть Basecamp, Trac, Bugzilla и всем остальным популярным решениям в этом сегменте.

image

www.asana.com

Основные возможности


(Сорри за качество скринов.)


image
Приятный, неброский интерфейс :-)

image
Риалтаймовые обновления с точностью до буквы (хорошо видно на видео ниже)

Читать дальше →
Всего голосов 74: ↑61 и ↓13+48
Комментарии138

PyQt4 и QML

Время на прочтение6 мин
Количество просмотров13K
Совсем недавно, разработчики фреймворка Qt Software, обрадовали нас появлением GUI, альтернативного стандартному, со своим, довольно несложным, языком разметки — QML.
Связкой QML с основной программой является модуль Qt Declarative. Начиная с версии 4.7 — PyQt4 поддерживает этот модуль.
QML значительно проще и гибче основного GUI, помимо того является и языком программирования, так как позволяет писать функции на javascript. В то время как Python довольно простой и гибкий интерпретируемый язык.

далее...
Всего голосов 48: ↑45 и ↓3+42
Комментарии16

Простейший способ создать окружение virtualenv

Время на прочтение1 мин
Количество просмотров16K
В этой статье я хочу вам рассказать про это уникальный способ создания изолированных окружений Python для удобной и комфортной разработки даже в самых дремучих условиях.

$ python -murllib http://tiny.cc/ve-setup | python

Так это выглядит, а под катом находится пара рецептов использования.
Читать дальше →
Всего голосов 31: ↑26 и ↓5+21
Комментарии6

Инструменты для форматирования CSS-кода

Время на прочтение3 мин
Количество просмотров60K
Любите ли вы свой CSS-код так, как люблю его я? Если да, то, несомненно, стремитесь к тому, чтобы он не только хорошо себя вёл и чувствовал, но и приятно выглядел.
Надеюсь, что инструменты, описанные ниже, помогут вашему коду приблизиться к идеалу.
Читать дальше →
Всего голосов 96: ↑86 и ↓10+76
Комментарии43

Двадцатка лучших веб-шрифтов

Время на прочтение9 мин
Количество просмотров764K
Top 20 Fonts

Сейчас самое время повышать уровень дизайна своих работ с помощью веб-шрифтов


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

Свобода использования веб-шрифтов вне безопасного списка на всех ведущих ОС стала возможной, по большому счету, благодаря трем основным, почти одновременным технологическим факторам: широко распространенной поддержке правила @font-face в браузерах; появлению таких «шрифтохранилищ» как Typekit и Fontdeck; создание нового формата шрифтов — архивированного файла шрифта WOFF.

Читать дальше →
Всего голосов 146: ↑128 и ↓18+110
Комментарии71

Откуда идут «функциональные» корни Python

Время на прочтение3 мин
Количество просмотров4.3K
Я никогда не полагал, что Python попадет под влияние функциональных языков, независимо от того что люди говорят или думают. Я знаком с императивными языками, такими как C и Algol68 и хотя я сделал функции объектами «первого класса», я не рассматривал Python как язык функционального программирования. Однако, было ясно, что пользователи хотят больше от списков и функций.
Читать дальше →
Всего голосов 54: ↑50 и ↓4+46
Комментарии35

Реализация XMPP Publish/Subscribe посредством Twisted

Время на прочтение6 мин
Количество просмотров3.9K
Доброго времени суток! В данной статье я расскажу о том, как сделать базовую реализацию publish/subscribe с помощью протокола XMPP, используя Twisted и библиотеку Wokkel. XMPP поддерживает pub/sub благодаря расширению XEP-0060. Используя pub/sub, можно решить задачу уведомления всех участников о событии и множество других. Достоверно известно, что Apple использует основанный на Wokkel'е pub/sub внутри своего notification server'a, но об этом чуть позже.
Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии2

Важные аспекты RESTful API для вашего проекта

Время на прочтение6 мин
Количество просмотров35K
Данная статья давно назревала в моей голове, но совсем в ином формате.
Прочитав последние несколько неуклюжих статей на тему WEB-сервисов (например: http://habrahabr.ru/blogs/development/108973/) и применения в них REST технологии, решил что настало время все-таки откинуть лень, выделить время и написать «переформатированную» в своей голове статью.
Итак, кратко, что Вы найдете в статье и кому она будет полезна:

новичкам, которые интересуются или планируют написать WEB-сервис для проекта
профи вряд ли найдут что-то новое для себя
— общая идеология REST
— применение CRUD в WEB-сервисах
— принципы KISS при построении раутеров
— лучшие практики
— немного пиара ;)
— ссылки, литература
Читать дальше →
Всего голосов 84: ↑74 и ↓10+64
Комментарии47

Hg Init: Часть 2. Основы Mercurial

Время на прочтение7 мин
Количество просмотров230K
Это вторая часть из серии Hg Init: Учебное пособие по Mercurial от Джоэля Спольски (Joel Spolsky). Возможно, вы захотите прочитать и первую часть «Переобучение для пользователей Subversion».

Даже если вы работаете в одиночку, то вам стоит использовать Mercurial. Так вы сможете получить все прелести контроля версий. Эта часть покажет насколько просто добавить каталог в Mercurial, чтобы с легкостью отслеживать предыдущие версии.

Часть 2. Основы Mercurial



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


Читать дальше →
Всего голосов 72: ↑69 и ↓3+66
Комментарии66

Hg Init: Часть 1. Переобучение для пользователей Subversion

Время на прочтение9 мин
Количество просмотров123K
Hg Init: Учебное пособие по Mercurial.


Mercurial — это современная распределенная система контроля версий с открытым кодом. Эта система — заманчивая замена для более ранних систем вроде Subversion. В этом простом учебном пособии в шести частях Джоэль Спольски (Joel Spolsky) рассказывает о ключевых принципах Mercurial.

Если вы использовали Subversion, то Mercurial будет непонятным. Эта часть рассказывает о главных отличиях при работе с Mercurial. Если вы никогда не использовали Subversion, то можете просто пропустить эту часть.

Часть 1. Переобучение для пользователей Subversion


В каком же я был смятении, когда программисты в моей компании решили сменить Subversion на Mercurial!

Для начала, я начал приводить всевозможные тупые причины, по которым нам не надо ничего менять. «Мы должны хранить репозиторий на центральном сервере, так безопаснее», — сказал я. Знаете что? Я был неправ. При работе с Mercurial у каждого разработчика на жестком диске хранится полная копия репозитория. Это, на самом деле, безопаснее. В любом случае, почти в каждой команде, использующей Mercurial, центральный репозиторий тоже существует. И вы можете делать резервное копирование этого репозитория со всей необходимой одержимостью. А еще можете устроить трехступенчатую защиту с Сайлонами, Штурмовиками и прелестными лабрадудлами или что там требует ваш IT-отдел.

Читать дальше →
Всего голосов 119: ↑116 и ↓3+113
Комментарии125

Продвинутые формы — мультиселект с автокомплитом

Время на прочтение5 мин
Количество просмотров7.1K
Наши пользователи следят за спецпредложениями авиакомпаний и дешевыми перелетами, каждому интересно своё направление, пунктов вылета и прилета — тысячи, пользователи хотят одновременно следить за несколькоми городами, странами или регионами. Появилась задача — как предоставить удобный механизм подписки? Без долгого тыканья в мульти селект, без кнопок «Добавить пункт вылета». Ответ выглядит так —

Решением стал контрол из Фейсбука и Контакта — пользователи знакомы с ним, а значит не нужно объяснять как он работает. Осталось скрестить его с django.
Читать дальше →
Всего голосов 77: ↑66 и ↓11+55
Комментарии41

Где моя кнопка?

Время на прочтение3 мин
Количество просмотров774
«Где моя кнопка? Почему она неактивна?» Как часто программист может слышать эти слова от пользователей своего продукта? Скорее всего, более чем очень часто для того, чтобы задуматься, а может быть продукт сам должен отвечать на этот вопрос пользователей.
Читать дальше →
Всего голосов 54: ↑44 и ↓10+34
Комментарии31

Сумбурные заметки про python и django

Время на прочтение5 мин
Количество просмотров47K
Накопилось несколько маленьких заметок/советов про python и django, которые на отдельные топики не тянут, поэтому публикую все сразу.

Под катом:
  • как упростить код вьюх ровно в 2 раза
  • легкий способ рисования графиков
  • почему Ian Bicking воскликнул «Cool!»
  • приложения для ВКонтакте на django за 5 минут
  • хорош ли pymorphy?
  • пара фишек насчет выкладки пакетов на pypi
  • что общего между декораторами и with-контекст-менеджерами
  • принимаем оплату на django-сайтах
  • показываем Яндекс.Карту для заданного адреса

Читать дальше →
Всего голосов 159: ↑153 и ↓6+147
Комментарии37

Строим плагиноориентированную модульную систему

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

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

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

Читать дальше →
Всего голосов 70: ↑55 и ↓15+40
Комментарии107

Ajenti — полгода спустя

Время на прочтение2 мин
Количество просмотров11K
Казалось бы, не так давно я представлял Хабру свой проект.
Откликнулось много людей, некоторые пришли и оставили свой след в исходниках и истории коммитов, некоторые исчезли, кто-то все еще с нами.
Я хочу выразить всем им свою благодарность, потому что без них у меня вряд ли что-нибудь получилось.
А сегодня я наконец выпускаю альфа-версию проекта.

Под катом вас ждет много интересного, а сейчас дохабракатный мотивационный скриншот:

image
Читать дальше →
Всего голосов 250: ↑244 и ↓6+238
Комментарии165

Разбираемся с Notifications API

Время на прочтение2 мин
Количество просмотров7.3K
Продолжаю серию переводов статей сайта html5rocks. Мы уже говорили про то, как внедрять шрифты, как работать с видео, сегодня мы поговорим про то как делать всплывающие сообщения в браузере с помощью Notifications API. Работает оно к сожалению пока только в Хроме, но есть уже начальная версия спецификации. Под катом подробности.
Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии9

Почему Git

Время на прочтение8 мин
Количество просмотров68K
Было время, когда я ничего не знал про VCS, ни что это такое, ни тем более зачем это мне. И верхом своих достижений считал папочку с архивами версий. К моменту осознания необходимости системы контроля версий я уже набил шишек и прочувствовал необходимость такого инструмента. Но борландовский аналог CVS меня не впечатлил. У каждого файла свой номер версии. Как мне получить срез определенного релиза я так и не разобрался. А в это время SVN победоносно шла сквозь умы разработчиков. Черт, это было то, чего мне так не хватало. Прочитав доку и начав работать я просто влюбился в нее. Да, были трудности и определенные неудобства, но куда без них.
Так я и работал бы в SVN, но ничего не стоит на месте. В интернете уже потекли тонкие ручейки новостей про Git. Я не кидаюсь за каждой новой технологией, и прошло уже достаточно много времени, пока мне не прожужжали этим Git’ом все мозги. Мне стало любопытно, я вначале присматривался, примерялся, а потом плюнул и начал новый проект на Git. Мучался с ребятами 2 недели, накачал литературы, написал шпаргалку… ничего, привыкли, … а потом меня поперло.

Теперь меня регулярно просят рассказать про Git и что в нем такого. Уже надоело, поэтому этот пост для тех, кто еще сомневается.
Читать дальше →
Всего голосов 207: ↑195 и ↓12+183
Комментарии265

Прикручиваем клевые шрифты с помощью @font-face

Время на прочтение3 мин
Количество просмотров43K
Недавно столкнулся с задачей прикручивания достаточно необычного шрифта для мобильного веб клиента. Так как работа была под айфон, то я решил, что в этой задаче мне поможет css 3 и такая штука как @font-face. Пользу от такого способа решения задачи, я думаю, видят все, потому что:
  • сохраняется поиск по тексту, потому что это текст, а не картинка;
  • появляется возможность использовать онлайн-переводчики и разные фишки связанные с текстом;
  • никто не отменяет для нас использование line-height, letter-spacing, text-shadow,text-align, и селекторов вида ::first-letter и ::first-line

Читать дальше →
Всего голосов 98: ↑88 и ↓10+78
Комментарии48

CloudUSB: компьютер в кармане

Время на прочтение1 мин
Количество просмотров1.7K
Хотите, чтобы ваш компьютер вместе с софтом и файлами всегда был с собой и надёжно защищён даже в случае потери? Автоматическое резервное копирование в онлайне с применением надёжного шифрования? Для этого не нужно таскать с собой ноутбук, достаточно одной флэшки.

Система CloudUSB представляет собой USB-флэшку с операционной системой Ubuntu 10.04 LTS и всеми пользовательскими настройками, папку Dropbox для файлов плюс программу для автоматического бэкапа с двойной парольной защитой.

Данные шифруются модулем EncFS, так что они хранятся в зашифрованном виде и на флэшке, и в Dropbox.

Вставляете флэшку в любой компьютер — и получаете родное окружение со всеми файлами. Рекомендуется накопитель на 4+ ГБ, хотя всё будет работать даже на двух. Хостинг Dropbox бесплатен до лимита в 2 ГБ.

На этой странице можно скачать ISO-образ (около 1 ГБ), скрипт для его копирования на флэшку, а также скрипт для создания своего собственного CloudUSB ISO с нуля. Логин и пароль по умолчанию cloudusb.
Всего голосов 53: ↑46 и ↓7+39
Комментарии30

Информация

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