Pull to refresh
4
0
Send message

gps.conf для всех, или как ускорить работу GPS на Android

Reading time2 min
Views467K
Сегодня в очередной раз задумался над темой плохого приема GPS сигнала на моем китайском смартфоне Jiayu G2. Но, неожиданно для меня, проблема решилась буквально за пару минут — «китаец» находит спутники в течение 20 секунд. А теперь обо всем по-порядку.
Читать дальше →

Свежий взгляд на микроконтроллеры

Reading time2 min
Views72K
Этот короткий пост может слегка напомнить некое исследование рынка по теоретической заметке "Микроконтроллеры устарели?".


На исследование микроконтроллеров и готовых плат натолкнула одна из небольших поделок, над которой сейчас работаю. В частности, необходим довольно компактный контроллер с 20 входами/выходами, и позволяющий выступать в роли ведомого USB устройства. Первый взгляд упал на Teensy, довольно компактный, на чипе Atmega32U4. Смутила только цена, $24 за устройство с распаянными ножками плюс доставка. Всего лишь чуть менее, чем вдвое дешевле, чем мне обошёлся, заказанный в апреле и пришедший лишь сегодня, Raspberry model B (ура!).
Цены на Arduino, Propeller также неприятно удивили.
Собственно, посетила мысль просто поставить сам чип на печатную плату и не заморачиваться с отдельным контроллером, но и Atmega32U не дёшев, около 4 евро за штуку (32U2) 5.5 евро за 32U4, и цены на них не снижаются, а, наоборот, растут.

С AVR'ами серии USB (90USB, 8U. 16U. 32U) смущает ещё то, что те пробные прошивки, что я делал по примерам, занимали около 18КБ, в основном занимаемые кодом работы с USB (LUFA/какое-то доморощенное от Teensy), а флеш памяти в половине этих устройств уже меньше. Что там с потреблением оперативной памяти, вообще сказать тяжело, хватит ли 1КБ? Без какого-то либо опыта оптимизации кода на C лезть в эти дебри совершенно не хотелось.

И тут внезапно

Оптимизация запросов в SQLite. Используем rowid

Reading time2 min
Views30K
Во время недавней оптимизации запросов в базу данных наткнулся на описание работы SQLite с rowid. Если вкратце: в каждой таблице есть int64 столбец rowid, значение которого является уникальным для каждой записи в таблице. Посмотреть значение можно по имени «rowid» и в запросе * оно не показывается.

Записи хранятся как B-дерево по rowid. И это делает очень быстрым поиск и выборку по rowid. В два раза быстрее чем по primary key или по индексированному полю. Как я понял, поиск по индексированному столбцу — это поиск по B-дереву, в результате которого мы находим rowid. И уже имея rowid — ищем нужную запись.

Напрашивается очевидный вопрос: как сделать чтобы rowid и наш PRIMARY KEY совпадали?
Читать дальше →

Google Drive теперь поддерживает публикацию веб-сайтов

Reading time1 min
Views60K


На Хабре не раз появлялись заметки о том, как можно использовать Dropbox для поддержания работы небольшого веб-сайта. Подобная функция теперь есть и у Google Drive, причем танцевать с бубном для настройки поддержания веб-содержимого вовсе не обязательно. По словам разработчиков, нужно просто загрузить HTML файлы и прочую информацию, выставить права, и все — сайт готов, работает.

Читать дальше →

Программно определяемые сети (Software Defined Networks): настоящее и будущее

Reading time5 min
Views27K
Как сказал однажды известный писатель, «…когда-то и электрическую лампочку считали чудом, а за обычные очки на носу могли запросто cжечь на костре…». Человечество во многом инертно и консервативно в своих взглядах. Люди не сразу воспринимает новое, как известно, первые два производителя молний для одежды разорились. И привычные сейчас вещи иногда проходят несколько витков по спирали прежде, чем превращаются в обычную для нас часть быта. То же самое можно сказать и про технологии.

Поговорим про модную сегодня тему, про так называемые, программно определяемые сети (Software Defined Networks, SDN), которая, как мне кажется, уже прошла все предварительные стадии и готова в ближайшем будущем превратиться в настоящий main stream развития сетей.
Читать дальше →

Умный дом на базе Z-Wave

Reading time5 min
Views245K


Долгое время я вынашивал идею, как лучше сделать удобное управление светом и электроприборами в квартире. При этом, мне хотелось иметь некое готовое модульное решение для относительно несложной самостоятельной настройки. Так, совершенно случайно, я наткнулся на оборудование, которое можно внедрить уже в существующую дома сеть совершенно «безболезненно». Им оказались устройства, работающие по протоколу Z-Wave.
Читать дальше →

Групповая разработка сайтов через git — автоматическое создание/удаление сайтов из git-бранчей

Reading time6 min
Views22K
В этой статье я расскажу, как создать групповую среду разработки сайтов через git с помощью git-хуков. Статья рассчитана на опытных системных администраторов, я лишь опишу алгоритм.
Многое на эту тему уже обсуждалось, а я добавлю, как автоматически создавать или удалять сайты при создании/удалении бранчей в git-репозитории. Такая возможность может пригодиться, к примеру, если над разными частями сайта работают разные программисты и нужны разные площадки (бранчи). После основной разработки и тестирования выполняется merge в основную ветку, а бранчи и тестовые сайты удаляются или архивируются.

Читать дальше →

Используем backbone.js под node.js

Reading time4 min
Views16K
Приветствую, уважаемые читатели Хабрахабра. Хочу поделиться с вами своим опытом использования backbone.js под node.js. Ранее я активно поработал с backbone.js на клиенте, и эта библиотека оказалась крайне удобной для структурирования кода.

Сервис без работы с какой либо базой данных — не сервис. В моем случае, в качестве СУБД была выбрана mongodb. Я посмотрел существующие решения ORM для mongodb, и мне показалось более удобным пользоваться знакомыми инструментами, тем более они же будут использоваться и на клиенте, поэтому решено было попробовать применить для моделей класс Backbone.Model и заодно проверить, как все это можно кастомизировать под mongodb.

Читать дальше →

OpenVPN на Android: прозрачное переключение между WiFi и «Мобильными данными» без разрыва соединений

Reading time4 min
Views35K
Здравствуйте, разрешите поделиться своим опытом.

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

Обзор свежих материалов, июль-сентябрь 2012

Reading time19 min
Views20K
Этот материал продолжает серию ежемесячных обзоров свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель 2010-июнь 2012.



Читать дальше →

Привлекательные экспериментальные плагины на JavaScript

Reading time2 min
Views49K

Вступление


Я безумно люблю различные эксперименты на JS. Они словно позволяют заглянуть нам в будущее, и посмотреть, каким захватывающим и футуристичным оно будет. Когда вы будете просматривать приведенную подборку, вы наверняка вспомните про еще недавнего короля — Adobe Flash, а затем осознаете, насколько быстро CSS и JavaScript лишили его трона. Современные браузеры позволяют нам использовать множество различных эффектов и анимаций без сильных тормозов. Однако слово «экспериментальный» подразумевает ряд ограничений, как например некорректное отображение в некоторых браузерах (IE), кроме того, подобные плагины будут, скорее, отличным концептуальным дополнением для персональных страниц, а не для использования в больших проектах.

Meny


image

Meny — трехмерное меню, которое помимо своей визуальной притягательности еще и экономит место на экране. При наведении (или свайпе на тачскрине, что важно), меню «выезжает» с отличным эффектом.
Читать дальше →

Архитектура таймеров в node.js

Reading time5 min
Views20K
Я бы хотел рассказать о таком замечательном и повсеместно используемом в node.js инструменте, как таймеры, и об их использовании в функциях setTimeout, setInterval и в модуле net. В node.js за таймеры отвечает модуль ядра timers.js. setTimeout — всего лишь доступная глобально функция из этого модуля.
Читать дальше →

Сравнение адаптивных CSS фреймфорков: Bootstrap, Foundation и Skeleton

Reading time1 min
Views105K


Недавно Brian Haveri в блоге vermilion.com сделал отличное наглядное сравнение популярных CSS-фреймворков (статья), которые можно использовать для разработки адаптивных сайтов.

За последний год мне удалось поработать со всеми этими фреймворками: Bootstrap, Foundation и Skeleton, и могу сказать, что в свое время такая табличка сохранила бы кучу времени. Поэтому я перевел ее на русский язык, добавив немного своих комментариев. Надеюсь будет полезно хабровчанам.
Читать дальше →

Демонстрация сбоев программы при отсутствии барьеров памяти

Reading time3 min
Views32K
Джефф Прешинг (Jeff Preshing) опубликовал отличную демонстрацию, как нормальный код C++ возвращает непредсказуемый результат на многоядерных процессорах со слабо упорядоченной обработкой очереди запросов (Weakly-Ordered CPU), то есть на ARM-процессорах. Например, на iPhone или каком-нибудь современном Android-устройстве.

Простая программа C++ с двумя потоками 20.000.000 раз прибавляет единичку к значению, защищённому мьютексом, — и каждый раз на выходе получается разный результат, который меньше 20.000.000!



Как говорится, наш враг — CPU.
Читать дальше →

Meteor 0.5.0: аутентификация, OAuth, SRP

Reading time1 min
Views5.2K
JavaScript-фреймворк для создания одностраничных веб-приложений реального времени Meteor с самого своего появления рождает противоречивые чувства. Мощный пиар, 11 миллионов инвестиций, впечатляющий скринкаст, восторженные отзывы — всё это на фоне очень раннего прототипа с прямым доступом к БД и непривычной архитектурой, вызывающей много вопросов.

Превью-версия 0.5.0 наконец-то содержит полноценные механизмы аутентификации и авторизации — Accounts API и Authentification API, мощный виджет аутентификации со всем функционалом для парольного доступа и мастерами настройки для каждого поддерживаемого OAuth-провайдера (на сегодняшний день это Google, Facebook, Twitter, GitHub и Weibo). В Meteor включена поддержка протокола SRP (Secure Remote Password Protocol), который реализует доказательство с нулевым разглашением, позволяя пользователю аутентифицировать себя, не передавая пароля.


Читать дальше →

Selfstarter: open source-платформа для независимого краудфандинга

Reading time1 min
Views6.5K
В последнее время краудфандинг всё чаще выходит за пределы крупных специализированных площадок. Модель сбора средств на конкретную цель в конкретные сроки по принципу «всё или ничего» оказалась настолько удачной, что отлично работает даже без поддержки авторитетных краудфандинговых сайтов. Так, стартап App.net (платный Твиттер без рекламы) своими силами недавно привлёк 800 000 долларов, при первоначальной цели в 300 000. А «умный замок» Lockitron собрал 1.5 миллиона всего за пять дней, что в десять раз больше плана. Сегодня сумма на их сайте приближается к двум миллионам. После столь успешной кампании, команда Lockitron решила выложить свой движок для сбора средств на Гитхаб.
Читать дальше →

Оптимизируем производительность JavaScript для V8

Reading time6 min
Views28K

Предисловие


Дэниел Клиффорд сделал на Google I/O прекрасный доклад, посвященный особенностям оптимизации кода JavaSсript для движка V8. Дэниел призвал нас стремиться к большей скорости, тщательно анализировать отличия между С++ и JavaScript, и писать код, помня о том, как работает интерпретатор. Я собрал в этой статье резюме самых главных моментов выступления Дэниела, и буду обновлять её по мере того, как движок будет меняться.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity