Как стать автором
Обновить
80
0
Mr. Skam @mrskam

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

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

Ещё один способ получить нестандартные данные в iOS

Время на прочтение4 мин
Количество просмотров16K
Привет!

Я хочу показать, как, не используя приватных API ( = не используя приватных фреймворков/классов/функций) можно собирать разнообразные данные о использовании устройства.

Вот описание информации, которую можно получить:
  • Мощность сигнала сотовой сети: RSSI в дБм и относительную мощность в «палках»
  • Качество сигнала WiFi (0 — плохо, 4 — хорошо)
  • Состояние регистрации в сотовой сети: наличие SIM, поиск сети
  • Тип сети передачи данных: 2G, 3G, WiFi
  • Заряд аккумулятора с точностью до процента (стандартные средства дают точность в 5%)
  • Включен ли «режим самолёта» («airplane mode»)
  • Включены ли различные сервисы: будильник, Airplay, VPN, перенаправление звонков, Nike+

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

URL Scheme: Проверка наличия установленного приложения в Javascript

Время на прочтение5 мин
Количество просмотров21K
Недавно столкнулся с необходимостью определить, зарегистрирована ли URL Scheme в браузере, чтобы в зависимости от результата показывать либо кнопку загрузки приложения, либо прямой URL на его запуск.

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

Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии17

Справочник фронт-энд девелопера: виды горизонтальных панелей навигации

Время на прочтение4 мин
Количество просмотров58K

Предисловие: работая верстальщиком, ваш покорный слуга заметил, что существует несколько типов меню; при этом для верстки каждого из них следует использовать свои приемы.
Подробности — под катом.
Читать дальше →
Всего голосов 81: ↑69 и ↓12+57
Комментарии16

Лёгкий сайт или как посадить браузер на диету

Время на прочтение14 мин
Количество просмотров144K

А что если объединить профессионалов, работавших над крупными web проектами, чтобы создать исчерпывающее руководство по оптимизации front-end разработки?
И получить в результате не скучную инструкцию, а что то поинтереснее? А если позвать Briza Bueno (Americanas.com), Davidson Fellipe (Globo.com), Giovanni Keppelen (ex-Peixe Urbano), Jaydson Gomes (Terra), Marcel Duran (Twitter), Mike Taylor (Opera), Renato Mangini (Google), и Sérgio Lopes (Caelum) чтобы собрать лучшие практики?

Именно это мы и сделали! Мы научим вас создавать быстрые сайты.

Zeno Rocha, руководитель проекта.


Читать дальше →
Всего голосов 193: ↑179 и ↓14+165
Комментарии80

Кастомизация скроллбаров в браузере: компромисс между технологиями html, css, js и удобством использования

Время на прочтение12 мин
Количество просмотров69K
Приветствую всех!


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



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

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

MongoDB: слишком много полей для индексации? Используйте общий индекс

Время на прочтение6 мин
Количество просмотров30K

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


Бывают ситуации когда документы имеют много различных полей и необходимо иметь эффективные запросы по ним. Например есть документ описывающий человека:

{
    _id: 123,
    firstName: "John",
    lastName: "Smith",
    age: 25,
    height: 6.0,
    dob: Date,
    eyes: "blue",
    sign: "Capricorn",
    ...
}


По таким документам можно делать выборку людей по цвету глаз, определенного роста, фамилии и по прочим характеристикам. А что делать если например документ состоит из десятков полей, или заранее не известны, или каждый документ имеет свой набор полей? Как при помощи индексов быстро решить данную проблему, но при этом не строить их по каждому полю, т.к это слишком дорогое решение.
Читать дальше →
Всего голосов 45: ↑43 и ↓2+41
Комментарии17

PlayScript

Время на прочтение6 мин
Количество просмотров8.2K
Примечание переводчика: неделю назад Zynga открыла исходники проекта, упрощающего перенос игр с Flash на мобильные платформы. Так как на хабре много людей, которые пишут игры на флеше, либо под мобильные платформы, представляю вам перевод текста со страницы данного проекта. Вполне вероятно, что вы захотите использовать его в своих разработках.

Что такое PlayScript?


PlayScript это проект с открытым исходным кодом, представляющий из себя ActionScript-совместимый компилятор и Flash-совместимую среду выполнения, которая работает на Mono .NET и предназначена для создания мобильных приложений с помощью MonoTouch и Mono for Android. Сочетание Adobe FlashBuilder для создания веб-приложений и Xamarin Studio для мобильных позволит разрабатывать мультиплатформенные приложения с использованием всех преимуществ данных IDE, а также с возможностью доступа к нативным API на мобильных платформах.

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

Асинхронные API и объект Deferred в деталях

Время на прочтение11 мин
Количество просмотров22K
Большинство современных языков программирования позволяют использовать асинхронно выполняемые блоки кода. Вместе с гибкостью, получаемой при использовании асинхронного подхода, рискнувший его применить также получает более сложный для понимания и поддержки код. Однако, любое усложнение, с которым сталкиваются программисты, как правило, находит практическое решение в виде нового подхода или повышения уровня абстракции. В случае асинхронного программирования таким средством служит объект типа отложенный результат или deferred (англ. deferred — отложенный, отсроченный).

В статье будет рассказано о базовых подходах к возврату асинхронных результатов, функциях обратного вызова, объектах deferred и их возможностях. Будут приведены примеры на языке JavaScript, а также произведён разбор типового объекта deferred. Статья будет полезна программистам, начинающим постигать асинхронное программирование, а также знакомым с ним, но не владеющим объектом deferred.
Окунуться в мир асинхронного программирования
Всего голосов 21: ↑17 и ↓4+13
Комментарии15

Впечатления от использования Google Producer

Время на прочтение4 мин
Количество просмотров11K
Здесь уже была обзорная публикация о возможностях Google Media для издателей и читателей, использующих этот сервис для чтения сайтов на мобильных устройствах. Коротко напомним об основных возможностях, процитировав официальную публикацию: «Теперь все владельцы мобильных устройств на базе Android и iOS могут загрузить русскоязычную версию приложения Google Медиа (Google Currents) и получить бесплатный доступ к онлайн-изданиям, включая российские. А для издателей мы разработали специальную платформу Google Producer, которая позволяет загружать в приложение собственные тексты, видео, картинки и многое другое.», в завершении которой предлагается всем желающим протестировать приложение и поделиться впечатлениями.

К сожалению, до сих пор нет подробного руководства о том, как это все использовать. Попробуем поделиться некоторыми впечатлениями и опытом использования Google Producer. Как оказалось, это достаточно мощный инструмент, с большим числом хитростей и особенностей, а также вариантов использования.
Читать дальше →
Всего голосов 13: ↑8 и ↓5+3
Комментарии4

Полное сканирование /0

Время на прочтение1 мин
Количество просмотров82K
На сайте Internet Census 2012 internetcensus2012.bitbucket.org опубликованы результаты сканирования всех существующих IPv4 адресов. Сканирование такого масштаба удалось осуществить благодаря ботнету из 420 тысяч незащищенных устройств.


Читать дальше →
Всего голосов 110: ↑106 и ↓4+102
Комментарии55

За что HTML-верстальщики так не любят веб-дизайнеров

Время на прочтение4 мин
Количество просмотров116K
За время своей работы верстальщиком, мне довелось иметь дело с кучей разных макетов как от новичков дизайна (или порой просто левых людей), так и до профессионалов. И за это время я успел набрать приличную выборку наиболее типичных багов в макетах, которых не в состоянии избежать даже маститые специалисты. Сразу оговорюсь — в некоторых организациях есть внутренние «требования к дизайн-макетам», и по идее, при несоответствии дизайна этим требованиям, он должен без вопросов отправляться на доработку, но реалии таковы, что зачастую проще самому внести нужные правки, чем гонять документ туда-сюда по трекеру. Но даже в этих «требованиях» упомянуты далеко не все очевидно возможные «косяки». Постараюсь привести наиболее популярные и универсальные (без личностной привязки). Да, кстати, все баги привожу под использование фотошопных psd — ну уж де-факто это стандарт в веб-макетах. Да и не попадались мне ещё макеты в векторе (и надо сказать, слава богу).
Читать дальше →
Всего голосов 149: ↑128 и ↓21+107
Комментарии273

Загадка выпадающего списка «Амазона»

Время на прочтение2 мин
Количество просмотров191K
Бен Кэменс обнаружил, что в выпадающем списке Shop by Department на сайте «Амазон» ховер-эффект происходит очень быстро, абсолютно без какой-либо задержки. Тем самым происходит нарушение старого, выработанного ещё в 90-х годах прошлого века правила: перед отображением пункта подменю необходим так называемый гистерезис, запаздывание.



Запаздывание необходимо не только для того, чтобы сберечь ресурсы машины пользователя, но и по соображениям юзабилити: если не добавить задержку, то переводить курсор мыши на выпавшее подменю будет неудобно, придётся вести его сначала горизонтально в меню, не задевая другие пункты, и лишь после выбирать нужный подпункт.
Читать дальше →
Всего голосов 558: ↑548 и ↓10+538
Комментарии90

Пример — часы на СSS3 без изображений и JavaScript

Время на прочтение9 мин
Количество просмотров92K


Это статья о том, как был сделан демонстрационный пример Wall Clock in Pure CSS3. Изначально, я предполагал написать данную статью в виде пошагового учебного пособия, но в процессе я понял, что такой пример мало для этого подходит. Потому я решил остановиться только на деталях, которые, на мой взгляд, наиболее интересны, а реализацию остального можно посмотреть и в коде.

Для начала собственно сам пример — на codepen.io или на cssdesk.сom

Читать дальше →
Всего голосов 222: ↑215 и ↓7+208
Комментарии73

GSA: Препарируем Google Search Appliance в виртуальной машине

Время на прочтение5 мин
Количество просмотров15K

Последние годы, с интересом почитывая о персональных поисковых системах в веселых желтых коробках имени Google, я периодически гуглил по словам GSA, Google Search Appliance, reverse engineering и, чего греха таить, hack, DIY, disk dump и т.п. Но ничего, кроме официальных пресс-релизов и переписки счастливых (?) обладателей с группой поддержки, я не встречал.

Иногда звучали на форумах робкие вопросы вроде «а как бы рута мне получить» или «попасть в GSA по ssh», но на все подобные вопросы ответ был один — только группа поддержки Google знает пароли. И никому не скажет. Удивительно, но я не встречал в интернете никаких попыток собрать «хакинтош» на движке Гугла, или по живому коду разобраться в алгоритме ранжирования страниц.

Ситуация слегка изменилась в 2008 году, когда на волне эйфории от виртуализации, Google выкатил VGSA – бесплатную виртуальную машину для Vmware с ограниченной до 50 тысяч документов лицензией. Впрочем, особого энтузиазма это в интернете не вызвало, в 2009 году проект был свернут и большинство ссылок в Гугле на VGSA стали возвращать 404 (заметьте – самим же Гуглом). Ссылку на релиз от 2008 года можно найти довольно легко. Ссылка на версию 2009 сохранилась лишь на паре китайских сайтов.

О том, как я поставил vgsa_20090210 на ESX 5.1 и увидел много чего интересного, можно прочитать ниже.
Дальше
Всего голосов 108: ↑106 и ↓2+104
Комментарии56

Кроссбраузерная кастомизация системного скроллбара

Время на прочтение8 мин
Количество просмотров146K


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

Под катом можно узнать, как в ближайшее время будет работать скролл в 2ГИС Онлайн.
Подробности
Всего голосов 127: ↑116 и ↓11+105
Комментарии132

Интерактивная обучалка ветвлению в Git

Время на прочтение1 мин
Количество просмотров80K
Некий Питер Коттл (Peter Cottle) сделал интерактивную обучалку по основам ветвления в Git. Есть несколько простых обучающих уровней, где нужно сделать пару коммитов, а затем merge или rebase, есть и сложные уровни, над которыми придется подумать. Можно также сохранять уровни и делиться ими с друзьями.

Хотя сам автор утверждает, что приложение еще сырое, я советую всем, кто интересуется гитом, взглянуть на эту прикольную штуку.

image
Читать дальше →
Всего голосов 162: ↑156 и ↓6+150
Комментарии38

Адаптивные баннеры на HTML5 и CSS3

Время на прочтение6 мин
Количество просмотров155K
Адаптивный веб-дизайн — значительное достижение для всего Интернета. Мы больше не скованы давно устаревшей моделью «печатной страницы» со статическим содержимым, разбитым на области фиксированного размера. Сегодня Интернет способен жить, дышать и приспосабливаться, заполняя всё пространство, доступное на экранах различных устройств, начиная от мобильных телефонов — и вплоть до огромных видеодисплеев. Это то, какой и предполагалась Глобальная сеть.

Но есть небольшая проблема. Веб-сайты зачастую содержат баннерную рекламу и традиционные баннеры, не обладающие особой гибкостью. Как flash-, так и GIF-баннеры имеют фиксированные размеры, из-за чего несовместимы с современной адаптивной вёрсткой. Нам необходим новый метод создания баннерной рекламы. Нам нужны «адаптивные» баннеры...
Читать дальше →
Всего голосов 29: ↑22 и ↓7+15
Комментарии16

Получение email пользователя через API Вконтакте

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

Всем доброго времени суток!


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

Хоть и занимаясь веб разработкой, да и программированием в целом не так давно, мне все же пришлось столкнуться с API социальных сетей, таких как Facebook и Вконтакте. Робота с «лайками» и другими данными проходила на ура. Но вот, попал в тупиковую ситуацию: как мне связать пользователей в общий аккаунт(проблема была следующая Вконтакте, в отличии от своего старшего брата, упорно не хотел отдавать email пользователя). Перечитав множество, форумов, разнообразных FAQ, пришел к выводу, что это все же невозможно. Мол, разработчики социальной сети, не хотят выдавать столь конфиденциальную информацию о своих пользователях. С этим пришлось смириться. Поставленная задача была решена другим способом, а в душе затаилась небольшая обида.

Но, мой пост, немного не об этом. Буквально сегодня наткнулся на следующий сайт:
Читать дальше →
Всего голосов 63: ↑37 и ↓26+11
Комментарии40

GCC x86, как уменьшить размер кода

Время на прочтение4 мин
Количество просмотров31K
      Времена, когда программисты пытались выжать максимум из размера своего приложения, безвозвратно ушли. Основной причиной является существенное увеличение объемов оперативной памяти и дискового пространства на современных компьютерах. Немногие помнят, как при загрузке приложения с кассеты можно было пойти покушать. Или как можно было считать моргания дисковода, косвенно определяя размер приложения. Пожалуй, только разработчики програмного обеспечения под встраиваемые системы до сих пор заботятся о размере кода и потребляемой памяти. Могут ли таблетки и смартфоны вернуть разработчиков «назад в будущее»?
      Данная статья призвана помочь разработчикам програмного обеспечения, использующим GCC компилятор, уменьшить размер кода своих приложений. Все данные в статье получены при помощи x86 GCC компилятора версии 4.7.2 на операционной система Fedora 17 для архитектуры Intel Atom.
Читать дальше →
Всего голосов 59: ↑54 и ↓5+49
Комментарии43

То, что вам никто не говорил о z-index

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

Проблема z-index в том, что многие просто не понимают, как он работает.
Всё, описанное ниже, есть в спецификации W3C. К сожалению, не все её читают.

Описание проблемы:


Итак, пусть у нас есть HTML код, состоящий из 3 элементов.
Каждый из них внутри себя содержит по одному . А каждый , в свою очередь, имеет свой фон: красный, зеленый и синий, соответственно. Плюс ко всему, каждый позиционирован абсолютно левого верхнего края документа таким образом, что он немного перекрывает собой следующий за ним . Первый имеет z-index
, равный 1, у остальных двух z-index не задан.
Читать дальше →
Всего голосов 112: ↑109 и ↓3+106
Комментарии30

Информация

В рейтинге
Не участвует
Откуда
Гатчина, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность