Pull to refresh
17
0
Send message

Особенности синхронизации в Android-приложении

Reading time5 min
Views12K
image

При разработке многих Android-приложений требуется организовать процесс синхронизации данных с данными на сервере. Есть два основных способа как данную синхронизацию можно реализовать.
Первый способ — классический (наиболее популярный и наиболее простой) — с помощью AlarmManager и Service. Например, как описано в этой статье.
Второй способ — «правильный» (но пока что, видимо, редко кем используемый) — с помощью SyncAdapter.

Разрабатывая своё приложение, изначально я попытался реализовать «правильный» (т.е. второй способ).
Читать дальше →

Робот «pick and place», который делает часть самого себя

Reading time1 min
Views3.5K
Я уже писал несколько раз на Хабре о плате Марсоход. Это такой простой «робо-контроллер» для изучения схемотехники, языков описания аппаратуры Verilog, VHDL, для создания простых электронных игрушек и устройств автоматики.

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

Самое главное — с помощью нашей платы Марсоход мы делаем разные проекты, исходные тексты и описания которых также публикуем на нашем сайте!

Хочу показать короткое видео, демонстрирующее один из последних наших проектов. Плата Марсоход управляет самодельным роботом, который производит сборку платы Марсоход. Если быть точнее — робот устанавливает на печатную плату SMD компоненты (резисторы и конденсаторы).



Так что будущее уже почти наступило — роботы могут делать сами себя :-)

Если Вас заинтересовало, как сделан этот робот, то можно посмотреть здесь.

История одной оптимизации

Reading time5 min
Views19K


Аннотация


Статья раскрывает особенности высокоуровневых оптимизаций вычислительных алгоритмов на Java на примере кубического алгоритма перемножения матриц.

Шаг 0. Установи точку отсчета!


Определимся с окружением:
  • Hardware: 1-socket/2-cores Intel Core 2 Duo T7300 2GHz, 2Gb ram;
  • Java: HotSpot(TM) Client VM (build 17.0-b17, mixed mode, sharing);

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

Hello World widget для Android

Reading time9 min
Views71K
Как ни странно, но на русском почти нет нормальных статей по виджетам для Android. Да и на англо язычных ресурсах почти нет простых примеров для старта, все примеры почему-то сложные и тяжелые для понимания. Спешу это исправить.
Читать дальше →

Smthngs (thn.gs) — todo веб-сервис как десктопное приложение

Reading time4 min
Views5.7K
Странное дело, порой кажется что каждый месяц появляется не меньше дюжины новых GTD-like таск-менеджеров. Одновременно с этим, хороших приложений для эффективного управления повседневными задачами крайне мало. Думаю, редкий читатель нашел для себя подходящий инструмент и пользуется им повседневно.
Мы не из ленивых, и как вы уже догадались, тоже сделали свой, с… всем что полагается.
Ниже я расскажу о нашей парадигме и особенностях, которые выгодно отличают нас от конкурентов. Т.к. многие уже устали от обилия постов о личной продуктивности на Хабре, в своем рассказе я сделаю упор на веб-технологии, а не на gtd-методологию. А пока картинка для привлечения внимания:
image
Читать дальше →

Работа с камерой в Android: снимаем видео

Reading time2 min
Views24K
В комментариях к статье Работа с камерой в Android был задан вопрос о том, как сделать видеозапись. Оказывается, все это делается довольно просто.
здесь подробности

А мы пойдем другим путем. Перемещаем модель в базу данных

Reading time6 min
Views5.1K
А мы пойдем другим путемВ последнее время веб-разработка из наколенного поделия превратилась в серьезную инженерную дисциплину. Все это стало возможным стараниями легиона специалистов, которые разработали общие практики, которые позволяют писать веб-проекты, с использованием некой архитектуры, а не подобно исследователю, сбрасывающему ящик типографского шрифта с крыши небоскреба, в надежде, что тот чудесным образом сложится в первый том «Войны и Мира». Самой распространенной парадигмой веб-программирования является, вне всякого сомнения, MVC — Model-View-Controller. Говоря примитивно, эта парадигма предусматривает разделение кода приложения на слой управления (Controller), слой представления (View) и слой управления данными (Model). При этом MVC предусматривает, что Controller и View могут (но не обязаны) зависеть от Model, в то время как Model ни при каких условиях не должен зависеть от них.
Есть много различных подходов, как отделить бизнес-логику приложения от логики отображения и управления. Все они предусматривают, что модель является частью приложения и взаимодействует с БД, использую последнюю лишь в качестве хранилища данных. Мы же попытаемся пойти иным путем и по возможности максимально вынести бизнес-логику приложения на уровень БД.
Предупреждение: лицам с тонкой душевной организацией лучше не видеть того, что будет твориться под катом.
Читать дальше →

Fragments API в Android 3.0

Reading time8 min
Views26K
В Android 3.0 введена новая концепция фрагментов, которая служит для упрощения работы с интерфейсом под разные размеры экранов. Данный топик является переводом статьи с android-developers.blogspot.com. В ней рассмотрены преимущества фрагментов, а также приведен простой, но законченный пример приложения, работающего по этому принципу.

Важная цель Android 3.0 — упростить написание программ, которые должны масштабироваться в зависимости от размеров экрана. Для этого в платформе Android уже доступны следующие средства:
  • С самого начала, UI-фреймворк был спроектирован для использования layout managers, которые позволяют описывать интерфейс так, чтобы он «подгонялся» к размерам. Примером этого является ListView, высота которого изменяется в зависимости от размера экрана, который варьируется между соотношениями QVGA, HVGA, and WVGA.
  • В Android 1.6 была введена новая концепция плотности экрана, позволяющая приложениям легче масштабировать размеры между разными разрешениями, в то время как экраны имеют почти один и тот же физический размер. Разработчики незамедлительно начали использовать эту особенность, когда были введены телефоны с высоким разрешением, такие как Droid.
  • Также в Android 1.6 разработчикам стали доступны размеры экрана, при помощи их классификации: «small» для соотношения QVGA, «normal» для HVGA и WVGA, и «large» для более больших экранов. Разработчики могут использовать систему ресурсов для выбора между различными layout'ами, в зависимости от размера экрана

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

Знакомство с OCR библиотекой tessnet2 (язык C#)

Reading time5 min
Views61K
example
Буквально на днях у меня появилась необходимость распознать простой текст на картинке и совсем не было желания реализовывать свой алгоритм, т.к. знаком с теорией и знаю, что это не такое простое дело, поэтому сразу решил изучить сначала рынок готовых библиотек. Буквально несколько запросов в гугл и я понял, что ничего более подходящего мне как библиотека tessnet2 невозможно найти. Постоянно читаю хабр и знаю, что тут есть уйма статей посвященных теории OCR и очень удивился, что нет ничего о библиотеке tessnet2.
Читать дальше →

Concentrate как спасение от прокрастинации

Reading time1 min
Views5.4K
image

Прочитав топик "Как оградить себя от сайтов-поглотителей времени?" сразу же вспомнил одну из самых необходимых программ, которая очень выручала меня, когда я работал под Mac OS X.

Встречаем — Concentrate.
Читать дальше →

G.E.C.K. или Комплект Создания Всемирной Деревни

Reading time1 min
Views5.3K
G.E.C.K. (Генератор Эдемских Кущ Компактный, Группа Эдемских Конструкционных Компонентов, КОмплект СОздания ГОрода Рая). Немало игровых часов потрачено в Fallout 2 чтобы найти этот заветный чемоданчик. Еще больше часов потрачено в обдумывании реализации подобного проекта в реальности.
И подобный проект в реальности есть, хотя по габаритам и несколько крупнее чемоданчика. Цели у проекта под названием Комплект Создания Всемирной Деревни (The Global Village Construction Set) разработать набор недорогих и открытых инструментов для построения поселений.

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

Метод одного дня

Reading time4 min
Views8.2K
Понедельник начинается в субботу.
А. Стругацкий, Б. Стругацкий.

Прошедшее забыто, грядущее сокрыто, настоящее даровано. Поэтому его и зовут настоящим!
Мудрая Черепаха из «Кунг-фу Панда»

Сегодня пойдет речь о методе, который я применяю, когда уматывают планы и лениво что-то делать вообще. Я знаю, есть люди, не любящие планирование. Есть люди, которые не любят загадывать. Есть те, кому просто непонятно, как работает его организм. Во всех этих состояниях я бывал, делюсь опытом.

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

Под катом простая схема, как этого достичь.
Читать дальше →

Как прокачивать мозг

Reading time8 min
Views174K
В этой теме я хочу поделиться своими знаниями про устройство мозга и тем, как применяю это на практике.

Не правда ли, картинка объемна?

Итак, как известно, мозг — важнейший орган нашего тела. Кто-то говорит, что он — самая сложная вещь во вселенной. И незнание некоторых его особенностей может очень плачевно сказать на жизни человека.

Но обо всем по порядку.

Понимание роли мозга


Нет невежества страшнее, чем невежество по отношению к самому себе.

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

Программирование в Mac OS X: пишем для iPhone

Reading time3 min
Views11K
в этом топике я покажу как написать простенькое приложение для iPhone с использованием официального SDK. Заполучить его просто, нужны:
1. Intel-based Mac(хотя и на PowerPC тоже работает, но после некоторых телодвижений)
2. iPhone SDK. Я буду писать на beta 2. Последнюю версию можно получить, зарегистрировавшись на developer.apple.com. Beta 2 можно найти в торрентах
Читать дальше →

Что такое эффект якоря и как вы можете его использовать

Reading time4 min
Views70K
На написание данной заметки натолкнула одна интересная статья “Anchoring effect”. Однако это совсем не перевод, так как в тексте встречается много лишней информации и исследований в духе «Британские ученые доказали…» Это скорее творческая интерпретация.

В статье описывается один очень важный психологический эффект – эффект якоря или эффект привязки.

В чём секрет?


Когда вам говорят «Только не думай о розовой обезьяне» — вы начинаете о ней думать. Но это пустяки, по сравнению с подсознательным смещением в восприятии числовых показателей.

Чтобы что-то оценить, нам необходима отправная точка, некий якорь – что-то вроде «розовой обезьяны».

Например, если спросить – сколько человек составляет население Венесуэлы, что вы скажете? Растеряетесь и задумаетесь. А если задать вопрос: «Население Венесуэлы больше или меньше 65 млн?». Вопрос приобретает иной окрас, и ваш мозг подсознательно начинает опираться на упомянутую цифру, даже если она взята «с потолка». Какой ответ вы дали в первом и втором случае? Во втором случае названное число будет намного больше, чем в ответ на первый вариант вопроса.
А между тем – в Венесуэле живет всего 28 млн человек.

Неоднократные исследования показали, что наш мозг всегда цепляется за подобные якоря, намек на которые нам дают обстоятельства, причем абсолютно любые.
Читать дальше →

Диалоговое окно Android с «иконифицированным» меню

Reading time5 min
Views7.4K
Некоторое время назад меня увлекла идея разработки приложений под платформу Android. Дабы не заниматься изучением платформы на простых hello-world программках решил сделать что-то такое, что позволило бы освоиться с UI частью фреймворка, работой с БД, сетью и социальными сервисами.
Идея была придумана до одурения простая и я бы даже сказал, тупая. И вот когда я начал что-то делать то тут резко захотелось мне сделать красивое диалоговое окно с выбором пункта меню с иконками. Такой диалог присутствует в стандартном Андроиде, например, долгий тап на рабочем столе открывает диалог выбора добавляемого контента (виджет, обоины и т.д.). Итак, добро пожаловать под кат…
Читать дальше →

Параллельные заметки N5 — продолжаем знакомиться с конструкциями OpenMP

Reading time4 min
Views54K
image
Предлагаю вашему вниманию очередную заметку посвященную знакомству с технологией параллельного программирования OpenMP. Рассмотрим директивы: atomic, reduction.

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

Подсчет трафика приложений в Android 2.2

Reading time1 min
Views2.4K
TrafficStatsВ Froyo появился новый класс android.net.TrafficStats с функцией getUidRxBytes(int uid) и getUidTxBytes(int uid) который позволяет для каждого приложения получить объем отправленного/полученного трафика. Сразу родилась идея написать простенькую программу, мне кажется гугловцы это и имели ввиду когда делали эту функцию. Программа при вызове и раз в час обновляет значения, чтобы не потерять данные при перезагрузке, так же есть кнопка обновления для параноиков.

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

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

Самодельный стабилизатор для цифровых камер

Reading time1 min
Views21K
Инженеры из Microsoft Research разработали интересную насадку, которая крепится на корпусе и подключается к сенсору цифровой камеры. Во время экспозиции стабилизатор точно регистрирует движения камеры, а потом автоматически исправляет резкость изображения.



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

Десять советов начинающим программистам

Reading time5 min
Views109K

Предисловие


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

Так вот, чтобы минимизировать эти затраты, давайте «создадим» хорошего, а возможно и идеального начинающего программиста, с высоким потенциалом и светлыми горизонтами.

Предлагаемые здесь десять советов не претендуют на оригинальность и, в основном, базируются на моем небольшом пятилетнем опыте разработок. Итак, начнем.

1. Будьте самостоятельными


Если у вас есть какой-то вопрос, и вы не знаете как с ним поступить, то вначале постарайтесь исследовать его самостоятельно. Не ждите постоянной помощи от коллег — у них и без вас работы хватает. Используйте всю мощь поисковых систем, специализированных ресурсов (например, stackoverflow), профессиональных блогов, форумов разработчиков, и конечно же хабра. Большинство типичных «граблей» можно обойти различными эффективными вариантами, а для решения базовых задач есть дюжины готовых решений. Просто пойдите и возьмите.

читать далее...

Information

Rating
Does not participate
Location
Канада
Registered
Activity