Pull to refresh
31
0
Евгений Власенко @mahnunchik

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

Send message

Некоторые особенности реализации фоновых приложений для iOS 4

Reading time7 min
Views13K
В статье речь пойдет об опыте реализации фоновых приложений для платформы iOS 4 в рамках работ над проектом Viber компании Viber Inc. Первая версия Viber была доступна пользователям AppStore 2 декабря 2010 года. Количество пользователей приложения Viber для iPhone в мае 2011 года превысило 15 млн. пользователей. Приложение обладает несколькими интересными особенностями:
  • повторяет интерфейс телефонной книги iPhone;
  • строит социальный граф на базе телефонной книги пользователя;
  • позволяет звонить и отправлять короткие сообщения между пользователями Viber.


Версия под операционную систему Android сейчас в стадии закрытого бета-теста.
Читать дальше →
Total votes 32: ↑26 and ↓6+20
Comments9

Javascript: ООП, прототипы, замыкания, «класс» Timer.js

Reading time19 min
Views97K
Здравствуйте программисты начинающие, законченные, а также все сочувствующие. Как известно, ничто не познается так хорошо, как на собственном опыте. Главное, чтобы опыт был полезный. И в продолжении этой простой мысли я хочу предложить заняться несколькими полезными делами сразу:
  • Побеседовать на тему «ООП с человеческим лицом».
  • Разобраться с прототипами в javascript, коротко и сердито!
  • Вспомнить, что «замыкание» это не только ценный мех… удар током.
  • Написать на javascript класс Timer — этакий планировщик событий для запуска анимаций, событий, любых функций.
  • Весело провести время!

Предупреждение! Если вы не ждете от статьи ничего веселого… то ошибаетесь. Людям с пониженным чувством юмора читать… еще более рекомендуется! Ну-с, приступим…
Читать дальше →
Total votes 101: ↑87 and ↓14+73
Comments51

Android клиент для Asana.com или как я познакомился с основателем Facebook

Reading time3 min
Views9.7K
Преамбула

Когда осенью 2011 года тогда новая и амбициозная, а теперь самая модная в долине система управления задачами asana.com, создаваемая сооснователем Facebook Дастином Московицем, плотно вошла в мою жизнь, конечно же я попытался найти клиент и для своего смартфона на базе Android. К моему сожалению, в Google Market (на тот момент), кроме приложений для йоги по ключевому слову asana найти ничего не удалось. Однако мобильный web интерфейс asana был достаточно оригинальным и новаторским, но малофункциональным и трудным в эксплуатации.

Asana mobile client screen

Читать дальше →
Total votes 84: ↑69 and ↓15+54
Comments41

Как повысить эффективность сайта или 5 причин начать использовать Google Analytics

Reading time8 min
Views12K
К написанию этой статьи меня подтолкнул один из самых популярных вопросов, который я регулярно слышу от потенциальных клиентов: как моему бизнесу поможет внедрение системы веб-анализа, которую вы нам советуете использовать? Руководители компаний, директора и менеджеры по маркетингу и рекламе, у которых в России, по большей части, к сожалению, пока достаточно низкое понимание принципов веб-маркетинга, хотят видеть реальные примеры того, как внедрение таких систем как Google Analytics и Яндекс Метрика может помочь их бизнесу. Обычно клиенты имеют базовое представление о возможностях таких систем и используют их возможности по минимуму: следят за посещаемостью своих сайтов, знают, откуда к ним приходят посетители, имеют общее представление о показателе отказов и приблизительно знают значение конверсии на своих сайтах. Если и Вы, уважаемые читатели, считаете, что этого достаточно для измерения эффективности Вашего сайта и рекламных кампаний (будь то контекстная реклама, SEO или любой другой способ привлечения посетителей на Ваш сайт), то значит, что Ваши конкуренты, которые активно используют системы статистики, или уже Вас обогнали, или скоро обгонят.

Ниже, я постарался привести пять, на мой взгляд, серьезных причин, почему Вам просто необходимо не только полностью внедрить и настроить систему веб-анализа на свой сайт, но и научиться самому и научить своих сотрудников активно ее использовать (на примере Google Analytics).

Читать дальше →
Total votes 52: ↑45 and ↓7+38
Comments4

Реалтайм-система мониторинга активности пользователей на сайте. Теперь на Node.js + Socket.IO

Reading time7 min
Views16K
Добрый день.

В этой статье я расскажу о том, как реализовать систему мониторинга активности пользователей с помощью Node.js и Socket.IO. Выглядит это примерно так:
image
Читать дальше →
Total votes 28: ↑23 and ↓5+18
Comments2

62 полезных инструмента для адаптивного дизайна (Responsive web design)

Reading time14 min
Views203K
UPD. Для краткого введения в адаптивный дизайн рекомендую прочитать статью «Как сделать один сайт для всех устройств (Responsive Web Design)».

Перевод крайне ценной статьи «Responsive Web Design Techniques, Tools and Design Strategies» популярного интернет-издания для разработчиков Smashing Magazine.

Еще в январе мы опубликовали статью об адаптивном дизайне «Responsive Web Design: What It Is and How To Use It» (Адаптивный веб-дизайн: Что это такое и как им пользоваться). Адаптивный веб-дизайн продолжает привлекать к себе много внимания, но, учитывая, насколько он отличается от традиционных методов разработки сайтов, он может показаться заоблачно сложным для тех дизайнеров и разработчиков, которые его не пробовали.

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

Техники Responsive web design


1. CSS Transitions and Media Queries
CSS Transitions и Media Queries

Elliot Jay Stocks подробно рассказывает о методе сочетания CSS Media Queries и CSS transitions. Основная идея в следующем: разрабатывая адаптивный сайт с помощью Media Queries, вы постоянно изменяете ширину вашего браузера, чтобы посмотреть, как сайт ведет себя при этом. Но каждый раз, когда отрабатывает один из ваших Media Queries, виден жесткий переход между стилями (первый, например, для десктопов, второй — для планшетов). Почему бы не использовать CSS transitions для сглаживания этих жестких переходов с помощью анимации?



Читать дальше →
Total votes 112: ↑107 and ↓5+102
Comments14

Автоматизируем социальную активность вашего интернет стартапа с помощью ifttt.com

Reading time5 min
Views5.3K

Начнём с описания ifttt.com



ifttt.com — это очень перспективный стартап, который в двух словах: Lets You Hack Together Web Apps, Without Coding Skills. Если детальнее, то это сервис позволяющий пользователям, без погружения в API огромного количества сервисов и каких либо знаний о разработке\языках программирования смешивать и автоматизировать различную активность друг с другом. В начале 2012 года получили посевные инвестиции в размере $1.5M.

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

ifttt main screen
Экран задач выглядит так

Читать дальше →
Total votes 80: ↑65 and ↓15+50
Comments32

Ядро Linux 3.3 поддерживает Android

Reading time1 min
Views9K

В воскресенье днем была выпущена последняя версия ядра Linux, и с версии 3.3 было добавлен функционал, о котором многие мечтали — код платформы Android интегрирован в ядро Linux! В теории должна быть возможность загрузить и работать с Android устройством. Однако работа над этим еще не завершена в плане управления питанием и спящим режимом во время блокировки. Но поскольку Android не нуждается в поддержке режима бодрствования* (Это очень быстро разряжает батарею) то наши смартфоны и планшеты можно считать официально поддерживаемыми Linux сообществом. И поверим обещаниям что режим wake-lock будет полностью поддерживаться в ядре версии 3.4.
Читать дальше →
Total votes 99: ↑88 and ↓11+77
Comments56

Time.is: синхронизация с атомным временем

Reading time1 min
Views33K


Не так давно начал работу Time.is — отличный сервис, который показывает примерную рассинхронизацию ваших компьютерных часов с международным атомным временем (погрешность Ajax обычно 0,02-0,1 с), также показывает время в 7 млн мест мира и сравнивает время в разных местах.

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

Есть даже специальный дизайн для полноэкранного режима в браузере. И учтите, что появление новой секунды на сервере Time.is происходит именно в начале этой секунды. Некоторые операционные системы даже не умеют синхронизировать компьютерное время с такой точностью.
Total votes 78: ↑66 and ↓12+54
Comments84

Документация jQuery UI на русском

Reading time1 min
Views54K
В справочнике jquery.page2page.ru появилась документация jQuery UI. Помимо подробного описания каждого плагина, она содержит статьи о фабрике виджетов, с помощью которой можно создавать собственные подобные плагины, правилах темизации (оформления) виджетов UI, собственной системе позиционирования UI, а так же о расширенных анимационных эффектах, доступных при подключении jQuery UI к сайту. Ну и конечно же есть вводная статья с которой можно начать изучение jQuery UI.

Кроме этого, обновлена карта функций, в которую были добавлены методы с двух последних обновлений jQuery, а так же все плагины jQuery UI.
Total votes 56: ↑51 and ↓5+46
Comments18

Разработка WEB-проекта на Node.JS: Часть 2

Reading time12 min
Views56K
В прошлой статье я начал рассказывать о своём опыте разработки экспериментального WEB-проекта «Что делать?» на Node.JS. Первая часть была обзорной, в ней я постарался раскрыть плюсы и минусы технологии, а также предупредить о проблемах, с которыми, возможно, придётся столкнуться в ходе разработки. В этой статье я подробнее остановлюсь на технических деталях.

Несколько слов о «хабраэффекте»


Читать дальше →
Total votes 67: ↑63 and ↓4+59
Comments103

Быстрые счетчики в Yii

Reading time2 min
Views12K
В релизе 1.1.8 PHP-фреймворка Yii появилcя дополнительный метод в классе CActiveRecord для работы со счетчиками, а именно saveCounters. Наверное, многие из вас читали о нем в анонсе релиза. Под катом я расскажу в чем его крутость и почему стоит его использовать. Возможно, после прочтения вы побежите рефакторить свой код.
Читать дальше →
Total votes 29: ↑24 and ↓5+19
Comments27

Разработчики объяснили, почему Chrome при запуске коннектится к трём случайным доменам

Reading time2 min
Views5.2K
Майк Вест (Mike West) из группы Google Chrome в Мюнхене объясняет, почему при каждой загрузке браузер пытается установить соединение с тремя случайными доменами, вроде hxxp://aghepodlln/ или hxxp://lkhjasdnpr/. Он говорит, что видел в интернете несколько странных конспирологических теорий на этот счёт, поэтому считает разумным разъяснить ситуацию.
Читать дальше →
Total votes 132: ↑121 and ↓11+110
Comments75

Руководство Apple «Как стать разработчиком под iOS»

Reading time1 min
Views38K
Компания Apple приглашает новичков начать разработку своих приложений под iOS, и в помощь опубликовала руководство "Start Developing iOS Apps Today", где указаны все необходимые действия на каждом этапе, даются советы по выбору языка программирования, дизайну интерфейса приложения и максимизации прибыли в App Store.



Руководство очень лаконичное, всего несколько строчек на каждой странице, но содержит все необходимые ссылки для более подробного изучения темы. Очевидно, оно предназначено для тех, кто ещё никогда не программировал под iOS.
Total votes 89: ↑76 and ↓13+63
Comments49

Внешние зависимости в гите: submodule или subtree?

Reading time3 min
Views55K
Давным-давно я усвоил, что зависимости должны храниться вместе с кодом проекта. Тогда, при возврате к старой версии кода, гораздо проще восстанавливать окружение.

У моего проекта несколько зависимостей. Бóльшая часть зависимостей живет в гитовых репозиториях. Сам проект тоже живёт в гите.

Одна из используемых нами библиотек часто обновляется. Мы сидим на девелоперской версии, и нередко сами контрибутим в неё код, который требуется нашему проекту. То есть требуется оперативно пропускать наши правки через основной репозиторий этой библиотеки — создавать и поддерживать свой форк по ряду причин совершенно не хочется.

Раньше я просто копировал зависимости в папку проекта, и добавлял к каждой файл VERSION.TXT с её версией. Но, если нужно работать с текущей версией стороннего кода, это неудобно. Да и копировать файлы руками когда есть гит как-то глупо. Хочется найти более современное решение.
Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments14

Считываем hash: пуленепробиваемый способ

Reading time3 min
Views27K
Это, вероятно, одна из тех задач, о которой все думают, что знают решение, но многие решают её в итоге некорректно. Наткнувшись на ещё один сверхслабый кусок кода, написанный для этой цели, я задумала разъясняющую блогозапись.

Суть проблемы


Вы хотите убрать символ решётки (#) из значения location.hash. Например, когда hash равен "#foo", Вы хотите получить строку, содержащую "foo". Это же просто, правда?

Сложные случаи


Вот что большинство разработчиков, кажется, упускает из виду: в современных, мощно наджаваскриптованных, приложениях переменная hash может содержать любые юникодовые символы. Она не обязательно должна соответствовать значению реального атрибута id с той же страницы. А когда она и соответствует, атрибуты id теперь могут содержать почти любые юникодовые символы. Да ещё часто забывают, что на странице может и не быть никакого хэша. Даже если URL оканчивается символом «#», строка location.hash равняется на самом деле "" (пустой строке), а не "#".

Наивные подходы


Вот наиболее недавний — я нашла его в книге, на которую составляла техническую рецензию:

var hash = location.hash.match(/#(\w+)/)[1];

У него сразу несколько проблем:

Читать дальше →
Total votes 74: ↑43 and ↓31+12
Comments26

Мысли о скриншотах через JavaScript

Reading time1 min
Views39K
При разработке одного сервиса я столкнулся с необходимостью дать возможность пользователям сообщать об ошибках. Проблема заключалась в том, чтобы пользователь мог сделать скриншот без использования стороннего софта или сервиса.

Сначала эта задача показалась мне невыполнимой, но я нашел html2canvas.
Читать дальше →
Total votes 67: ↑63 and ↓4+59
Comments57

Yii переехал на GitHub

Reading time1 min
Views2.2K
Мы официально целиком и полностью переехали на GitHub. Перенесён весь код с полной историей, а также трекер со всеми тикетами.

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

Использующим SVN нужно обновить URL на https://github.com/yiisoft/yii/trunk/.

Читать дальше →
Total votes 67: ↑60 and ↓7+53
Comments17

Новая файловая политика iOS 5 и история реджекта по-вахтёрски

Reading time5 min
Views2.7K


Good day, хабрасообщество!

Решил разбить эту статью на две части – первая будет про НЭП Новую Файловую Политику и чистку любимой папки Documents, т.е. полезную iOS-девелоперу информацию (вроде на хабре про это ещё не писали). Информация очень полезная, если вы хотите сберечь нервы, время и деньги при залитии обновления / нового приложения на AppStore, так что рекомендую к чтению всем-всем-всем.

Во второй я расскажу про войну с первой линией техподдержки Эппла и синдром вахтёра, но она носит скорее повествовательный характер и её читать не нужно.
Читать дальше →
Total votes 74: ↑69 and ↓5+64
Comments32

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity