Pull to refresh
2
0
Алексей Жуковский @megazhuk

Предприниматель. Инженер.

Send message

Об открытости данных в Android-приложениях

Level of difficultyMedium
Reading time6 min
Views39K
Немного информации о том, какие данные в вашем приложении могут быть доступны для других программ и какие меры можно предпринять, чтобы это предотвратить.


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

Основы создания 2D персонажа в Unity 3D 4.3. Часть 1: заготовка персонажа и анимация покоя

Reading time6 min
Views333K
Часть 1: заготовка персонажа и анимация покоя
Часть 2: бегущий персонаж
Часть 3: прыжки (и падения)

Всем добрый день. В относительно недавно вышедшей Unity 4.3 появились инструменты для создания 2D игр. Конечно, такие игры можно было создавать и раньше, но это делалось при помощи дополнительных ухищрений (вот пример с хабра). Теперь же появилась поддержка 2D «из коробки». Надеюсь, разработчики продолжат ее развивать, а пока я хочу рассказать о некоторых приемах работы с новыми 2D инструментами.
Читать дальше →

Первые шаги к вселенной MeteorJS

Reading time6 min
Views48K


Если вы интересуетесь клиентским программированием, то как и я, вероятно, могли слышать о Meteor, уже не новом веб-фреймворке, который относится к набирающим популярность, так называемым «фулл-стек» фреймворкам. О нем уже писали на Хабре, чтобы не дублировать информацию, можно почитать здесь или тут. Я довольно давно слышал о метеоре, но все никак не решался его пощупать. И вот, пришли очередные выходные, и я снова наткнулся на него. В этот раз я решил честно попробовать, что это такое. Может быть, этот пост даст кому-то небольшой толчок к началу изучения или хотя бы знакомства с этим инструментом. Тогда это было бы не зря.
Disclaimer: может вызвать зависимость.
Давайте же сделаем первые шаги к освоению meteorjs, добро пожаловать под кат.
Читать дальше →

Еще раз об архитектуре Android приложения или джентльменский набор библиотек

Reading time6 min
Views57K
Вот надумал написать обзор библиотек с помощью которых легко и удобно писать приложения под Android.
Список вырисовывается такой:

Если заинтересованны прошу под кат.
Читать дальше →

Размещение заказов у китайских поставщиков

Reading time7 min
Views118K

Основано на реальных событиях: «Mini-Desktop своими руками»


После публикации моей предыдущей статьи я получил много вопросов о том, каким образом лучше подступиться к Азиатскому производителю, что бы реализовать производственный образец или заказать партию товара в Азии за вполне реальные деньги. На самом деле, в зависимости от ваших потребностей, реализация вашего проекта возможна и во Вьетнаме, Тайване, Мьянме (да. и там тоже), Камбодже, Малайзии, Индии и (возможно) в Таиланде. В каждой из этих стран есть свои плюсы и минусы в зависимости от номенклатуры заказываемого продукта.

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

Поддержка USB в KolibriOS: что внутри? Часть 1: общая схема

Reading time9 min
Views36K
Архитектура USB содержит несколько уровней. На самом низком уровне специально обученное железо, называемое хост-контроллером (host controller), общается с USB-устройством специальными сигналами. Сигналы кодируют биты, биты складываются в пакеты, пакеты образуют транзакции, транзакции составляют передачи (transfers).

Я рассказываю о программной поддержке USB, поэтому уровни ниже передач почти неинтересны: за них отвечает хост-контроллер. Зато важно, какой интерфейс представляет хост-контроллер софту. Сейчас распространены три интерфейса, и постепенно распространяется четвёртый:
Аббр. Название интерфейса Версия Код поддержки контроллера в KolibriOS
UHCI Universal Host Controller Interface USB 1.1 kernel/trunk/bus/usb/uhci.inc
OHCI Open Host Controller Interface USB 1.1 kernel/trunk/bus/usb/ohci.inc
EHCI Enhanced Host Controller Interface USB 2.0 kernel/trunk/bus/usb/ehci.inc
XHCI eXtensible Host Controller Interface (новый) USB 3.0 В KolibriOS ещё не поддерживается
На этом же уровне взаимодействия с контроллерами находятся файлы kernel/trunk/bus/usb/hccommon.inc, где реализованы некоторые функции, общие для всех контроллеров, и kernel/trunk/bus/usb/init.inc, который запускает всю подсистему. Впрочем, не торопитесь пока лезть в код — во-первых, я ещё не рассказала про то, чего же ожидают от него более высокие уровни, а во-вторых, после демонстрации общей схемы я вернусь к отдельным компонентам с подробностями.
И что же на более высоких уровнях?

DipTrace и ГОСТ. Библиотека УГО

Reading time6 min
Views171K
Что-то на Хабре совсем нет постов о таком замечательном инструменте как DipTrace. Думаю необходимо исправлять эту ситуацию.



DipTrace — это мощная система проектирования принципиальных схем и печатных плат (EDA — система).
Внимание! Под катом трафик!
Читать дальше →

KiCad и ГОСТ. Библиотека УГО

Reading time5 min
Views91K
Дополняем цикл статей по УГО для различных САПР-схемотехники. В данном топике описывается процесс создания компонента УГО для KiCad.



KiCad — распространяемый под лицензии GNU GPL программный комплекс класса EDA с открытыми исходными текстами, предназначенный для разработки электрических схем и печатных плат.

Внимание! Под катом трафик!
Читать дальше →

Несколько полезных приемов в AngularJS для начинающих

Reading time5 min
Views51K
При создании приложений на AngularJS у начинающего разработчика возникает много вопросов, особенно в том случае, если до определенного времени он использовал библиотеки сходные с jQuery или Prototype. В данном посте хотелось бы поделиться некоторыми приемами, которые будут полезны начинающим AngularJS разработчикам.

Загрузка приложения и менеджер состояний


До момента загрузки самого фрэймворка, его зависимостей и отработки всех запросов в бэкграунде приложение может выглядеть весьма удручающе. И даже ng-cloak не сможет помочь в большинстве случаев. Обычно для таких целей используют div имеющий больший z-index чем основной контент сайта и перекрывающий его до загрузки всех компонентов и состояний. Он может выглядеть так:

<div class="loader" ng-show="loader"><div class="loader-content">Loading...</div></div>

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

Команда dd и все, что с ней связано

Reading time4 min
Views649K

В UNIX системах есть одна очень древняя команда, которая называется dd. Она предназначена для того, чтобы что-то куда-то копировать побайтово. На первый взгляд — ничего выдающегося, но если рассмотреть все возможности этого универсального инструмента, то можно выполнять довольно сложные операции без привлечения дополнительного ПО, например: выполнять резервную копию MBR, создавать дампы данных с различных накопителей, зеркалировать носители информации, восстанавливать из резервной копии данные на носители и многое другое, а, при совмещении возможностей dd и поддержке криптографических алгоритмов ядра Linux, можно даже создавать зашифрованные файлы, содержащие в себе целую файловую систему.
Опять же, в заметке я опишу самые часто используемые примеры использования команды, которые очень облегчают работу в UNIX системах.
Читать дальше →

Работа с GSM-модулем на примере SIM900D

Reading time9 min
Views153K
Не так давно друг предложил мне работу, связанную с созданием прошивки для микроконтроллера, который должен был связываться с сервером при помощи GSM-модуля SIM900D. Ранее я с программированием микроконтроллеров дела не имел, да и на C программировал последний раз в студенческие времена, но любопытство перевесило и я принялся за работу. Документация по данной железке присутствует в интернете, однако хороших примеров работы с TCP/IP в коде найти не удалось. Ничего не оставалось, кроме как обложиться документацией, запастись сигаретами и чаем и приступить к лавированию между граблями. А граблей оказалось немало. Собственно, поэтому я и написал эту статью — чтобы другим было легче.

Далее будет много AT-команд, не слишком много кода и очень много букв.
Читать дальше →

Мини-обзор Arduino-совместимых плат различных архитектур

Reading time5 min
Views98K
В тематическом блоге «Программинг микроконтроллеров» уже было несколько статей по поводу выбора первого микроконтроллера и начала работы с ним. Не менее интересны были и комментарии к таким статьям. Одна из мыслей, которая несколько раз поднималась там — это что не все, кто имеют интерес к МК, приходят к ним от транзисторов. Некоторые (дай бог, чтобы побольше), приходят к ним со стороны (прикладного) программирования. Рекомендовать таким людям брать в руки паяльник — не разумно, у них и так есть вещи, которые они могут «попаять». Так мы приходим к слову «Arduino», которое уже многие слышали. Среди бывалых с паяльниками существует стереотип — Arduino это платка на AVR для ленивых. Так ли это? Эта статья — попытка наглядно показать, что Arduino — это не про AVR и не про лень, Arduino — это архитектурно-независимая электронно-механическая платформа совместимых компонентов, по (относительной) значимости не менее важная, чем (в свое время) IBM S/360, IBM PC или USB.



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

Arduino watchdog или автоматический RESET в случае зависания

Reading time7 min
Views248K

Речь пойдет о том, как держать Arduino всегда в работоспособном состоянии. Механизм watchdog встроен в контроллеры Atmega, но, к сожалению, не всякий загрузчик (bootloader) Arduino правильно обрабатывает эту функцию. Попробуем разобраться с этой проблемой.

Итак, что такое watchdog? Простыми словами — это встроенный таймер на определенное время (до 8 сек в зависимости от чипа), который можно запустить программно. Как только таймер «дотикает» до нуля, контроллер подает правильный сигнал сброса (RESET) и всё устройство уходит в hard перезагрузку. Самое главное, что этот таймер можно сбрасывать в начальное состояние также программным способом.

  • Правильный сигнал сброса — достаточный по длительности для того, чтобы контроллер начал перегружаться. Иногда есть соблазн подключить к RST входу какой-либо цифровой выход Arduino и устанавливать его в 0 когда надо перегрузиться. Это плохой подход к решению проблемы, т.к. такого сигнала может быть недостаточно по времени, хотя и не исключено, что в некоторых случаях это тоже будет работать..
  • hard перезагрузка это самая настоящая перезагрузка, которая происходит при нажатии на кнопку RESET. Дело в том, что есть еще понятие soft перезагрузки — это программный переход на 0-вой адрес. В принципе, это тоже полезная вещь, но с помощью нее невозможно перегрузить зависший контроллер Ethernet или взглюкнувший LCD.

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

Программирование Arduino из консоли, gentoo-way, ничего лишнего

Reading time7 min
Views29K
Условия задачи с одной стороны сложны, с другой стороны очень просто формулируются. Есть сервер очень-очень далеко, к нему через FTDI конвертер подключена Arduino. Доступ у серверу – SSH. А надо исправлять, компилировать и заливать прошивки в плату. Классический пример — оклейка обоями запертой комнаты через замочную скважину. Очевидно ни о какой Arduino IDE, Eclipse и прочих красивых средах программирования речи быть не может.

С другой стороны — что нам стоит дом построить, нарисуем, будем жить.
Читать дальше →

Автомобильная спутниковая сигнализация на STM32F1

Reading time33 min
Views121K
Теория создания самодельной автомобильной спутниковой сигнализации с web-интерфейсом и поддержкой eCall / ЭРА-ГЛОНАСС на базе микроконтроллеров STM32 как основа концепции «Умный автомобиль», и её использование в системах «Умный дом». Реализация аналога технологии Volvo On Call и автомобильной социальной сети Toyota Friends.
Читать дальше →

C# async для iOS и Android

Reading time9 min
Views16K
Xamarin добавил поддержку C# 5 Async/await на iOS и Android. Кроме базовых классов .NET Async, появились 174 асинхронных метода в Xamarin.iOS и 337 в Xamarin.Android. Асинхронным так же стал Xamarin Mobile, который предоставляет кроссплатформенный доступ к адресной книге, камере и геолокации. Компоненты вовсю добавляют поддержку async, например, облачный backend Parse.

Под катом расшифровка и перевод вебинара об этом значимом событии.


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

Link, $observe и $watch функции в директивах, выполняемые в контексте AngularJS

Reading time6 min
Views22K
При запуске своего кода внутри контроллера или сервиса не приходится беспокоиться о вызове $apply(), поскольку код выполняется внутри контекста Ангуляра. Под этим подразумевается, что Ангуляр понимает, что ваш код находится в процессе выполнения и выполнит грязную проверку (dirty-check) после завершения его работы. Когда же вы находитесь внутри директивы, мировоззрение Ангуляра чуть более ограничено; теперь директива должна заботиться о вызове $apply() (или вызове $apply() с чем-то вроде $timeout), когда необходимо сообщить Ангуляру об изменениях в модели представления (т. е. $scope). Однако, определить когда это нужно делать, немного сложнее, потому что некоторые аспекты директивы фактически выполняются внутри контекста Ангуляра.

Если вы уже создавали свои собственные директивы, можно не сомневаться, что видели одно из двух сообщений:

$apply is already in progress.
$digest is already in progress.
Читать дальше →

Пилим Pan/Tilt вебкамеру (это которая крутится) + возможность подключать всякие датчики за ~15$

Reading time14 min
Views85K


В связи с тем что предыдущая поделка уехала «в закат» появилась идея сделать несложную поворотную (по двум осям — Pan/Tilt) вебкамеру для инсталляции ее на потолок около сервера, который весит на стенке и на пару с роутером неоправданно кушает ценное электричество, причем круглосуточно. Пусть займется чем-то полезным.


Полет фантазии в хронологическом порядке....

Осторожно! Пост может инициировать бардак на вашем столе!

Мы спасены! Genymotion — забудьте про вашего эмулятора-слоупока

Reading time1 min
Views137K
Думаю, все кто осваивал разработку приложений под Android, сразу же осозновал невозможность тестирования программ без реального устройства. А все потому что официальный Android эмулятор страдает серьезными проблемами с производительностью.
Решение проблемы

Beacon Mountain — всё, что нужно Android разработчику

Reading time1 min
Views28K

Компания Intel представляет бесплатный комплект программного обеспечения для проектирования, разработки, отладки и оптимизации приложений под Android — Beacon Mountain. В состав комплекта входит как ПО Intel, так и сторонние утилиты. Общий список программ выглядит следующим образом:
  • Intel Hardware Accelerated Execution Manager (Intel HAXM)
  • Intel Graphics Performance Analyzers (Intel GPA) System Analyzer
  • Intel Integrated Performance Primitives (Intel IPP) Preview
  • Intel Threading Building Blocks (Intel TBB)
  • Intel Software Manager
  • Google Android SDK (ADT Bundle)
  • Android NDK
  • Eclipse Integrated Development Environment
  • Android Design
  • Cygwin (для Microsoft Windows)
Теперь весь этот софт можно установить за несколько кликов из одного дистрибутива. В состав Beacon Mountain входит средство обновления его компонентов — вам не придется отслеживать выход новых версий.
Beacon Mountain предназначен для разработки приложений как под процессоры ARM, так и под Intel Atom; поддерживаются версии Android от 4.2 и выше. Сам комплект работает на Windows 7 или 8; позднее планируется выпустить версию для Apple OS X.
Скачать Beacon Mountain с сайта Intel
Под хабракатом — небольшой видеоролик о новом продукте.
Читать дальше →

Information

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