Обновить
16
0

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

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

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

Время на прочтение5 мин
Охват и читатели13K
image

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

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

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

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

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

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

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



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

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

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

Время на прочтение5 мин
Охват и читатели19K


Аннотация


Статья раскрывает особенности высокоуровневых оптимизаций вычислительных алгоритмов на 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

Время на прочтение9 мин
Охват и читатели72K
Как ни странно, но на русском почти нет нормальных статей по виджетам для Android. Да и на англо язычных ресурсах почти нет простых примеров для старта, все примеры почему-то сложные и тяжелые для понимания. Спешу это исправить.
Читать дальше →

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

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

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

Время на прочтение2 мин
Охват и читатели25K
В комментариях к статье Работа с камерой в Android был задан вопрос о том, как сделать видеозапись. Оказывается, все это делается довольно просто.
здесь подробности

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

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

Fragments API в Android 3.0

Время на прочтение8 мин
Охват и читатели26K
В 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#)

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

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

Время на прочтение1 мин
Охват и читатели5.5K
image

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

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

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

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

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

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

Время на прочтение4 мин
Охват и читатели8.4K
Понедельник начинается в субботу.
А. Стругацкий, Б. Стругацкий.

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

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

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

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

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

Время на прочтение8 мин
Охват и читатели175K
В этой теме я хочу поделиться своими знаниями про устройство мозга и тем, как применяю это на практике.

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

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

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

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


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

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

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

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

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

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

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

В чём секрет?


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

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

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

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

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

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

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

Время на прочтение4 мин
Охват и читатели57K
image
Предлагаю вашему вниманию очередную заметку посвященную знакомству с технологией параллельного программирования OpenMP. Рассмотрим директивы: atomic, reduction.

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

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

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

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

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

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

Время на прочтение1 мин
Охват и читатели22K
Инженеры из Microsoft Research разработали интересную насадку, которая крепится на корпусе и подключается к сенсору цифровой камеры. Во время экспозиции стабилизатор точно регистрирует движения камеры, а потом автоматически исправляет резкость изображения.



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

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

Время на прочтение5 мин
Охват и читатели110K

Предисловие


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

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

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

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


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

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

Информация

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