Обновить
30
0

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

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

Ввод пароля или похитители времени

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


Не знаю, как вам, но мне в течении дня приходится часто отходить от рабочего места и блокировать мак. Чтобы не совершать несколько кликов мышкой, блокировку своего мака я «повесил» на клавиши «shift + cmd + l», но по приходу к рабочему месту опять же приходилось вводить пароль (который в силу моей параноидальности не так-то прост). И вот, ошибившись в спешке в очередной раз при его вводе, задумался автоматизировать процесс блокировки/разблокировки. Так как все двери нашего офиса открываются по карте, решил повесить на RFID-метку (всё равно всё время болтается на шее) и эту функцию. Итак, задача на словах выглядела так: авторизовавшись единожды в начале рабочего дня иметь возможность блокировки/разблокировки мака по RFID-метке, при этом все функции проверки валидности метки и т.п. должны происходить на стороне мака.

Начало — уже половина дела, да и как раз под рукой освободился стенд на базе Arduino UNO.
Читать дальше →

Поддержка интерактивных нотификаций iOS 8 в приложении

Время на прочтение3 мин
Охват и читатели10K
Одним из нововведений iOS 8 являются интерактивные нотификации. Таким нотификациям можно назначить до четырех действий, каждое из которых будет представлено отдельной кнопкой внизу баннера с текстом нотификации. Таким образом, у пользователя появляются дополнительные возможности отреагировать на сообщения без активации (обычно) приложения. Рассмотрим, как добавить поддержку подобного функционала.
Читать дальше →

Брутфорсим EFI с Arduino

Время на прочтение23 мин
Охват и читатели106K
Приветствую Хабравчан!

Думаю, данной темой не многих удивишь — достаточно набрать в поисковике фразу arduino bruteforce и сразу станет понятно, насколько распространен перебор паролей при помощи платформы Arduino. Я же хочу рассказать о том, как это быстро организовать с наименьшим наборов компонентов, без разводки/травления плат и пайки. Сразу оговорюсь, что описанные мною действия носят ознакомительный характер и никому не причинили вреда, ни морального, ни физического… разве что мошенникам.


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

Особенности работы с Multicast

Время на прочтение4 мин
Охват и читатели76K
Хочу поделиться небольшим опытом работы с технологией групповой передачи данных, или иначе UDP Multicast, и проблемой особенностью, которая возникает при написании кроссплатформенного кода.
Читать дальше →

Децентрализованная система обмена сообщениями

Время на прочтение5 мин
Охват и читатели37K
Мир IT-разработок идет по спирали. Основатели UNIX считали, что пусть программ будет много, но каждая из них выполняет свою задачу на «отлично». В начале 2000х основным трендом были программы-комбайны, выполняющие все, что только можно и даже больше. Сейчас вектор направления разработок начал движение в обратную сторону. И если раньше для обмена данными использовался в основном стандартный поток ввода/вывода, то теперь из-за того, что системы делают все более распределенными, передачей данными между узлами занимаются специализированные интеграционные комплексы (англ. Message Bus или Message broker).

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

Пример реализации я хотел бы представить.
Читать дальше →

Тестируем VoCore в хакспейсе — микро-компьютер с WiFi на Linux/OpenWrt

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


VoCore — это такой микрокомпьютер с Linux/OpenWrt на борту, который совсем недавно с помощью краудфандинга собрал более $100к (из заявленных $6k). Внутри этой штучки: MIPS процессор 360МГц, WiFi 802.11n, Ethernet 10/100Мбит/с, и куча GPIO. Все уместилось на платке размерами 25х25мм!

Ниже мы расскажем о том, как за пять минут заставить VoCore (этот аппарат) выполнять простое действие — зажигать и гасить светодиод. Понятно, что с помощью нехитрых схем, вместо светодиода можно подключить любую другую нагрузку: от лампочки до котла отопления.

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

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

Пробуем Xcode Live Rendering

Время на прочтение6 мин
Охват и читатели16K
Как вы знаете, в Xcode 6 и iOS 8 SDK Apple добавила возможность рендеринга кастомных компонентов и редактирования их свойств прямо в стандартном Interface Builder (здесь должно быть едкое упоминание о том, что это было еще в Delphi древних версий).

Основы


Для начала нам понадобится какой-то самодельный наследник UIView, чтобы заставить Xcode рендерить его в Interface Builder. Для этого его нужно пометить атрибутом IB_DESIGNABLE (технически в Objective-C это макрос, ну раз Apple называет это атрибутом, и в Swift это атрибут, так тому и быть):
IB_DESIGNABLE
@interface XXXStaticPriceView : UIView

@property (nonatomic, copy) IBInspectable NSNumber *price;
@property (nonatomic) IBInspectable NSUInteger amount;
@property (nonatomic) IBInspectable NSNumberFormatterRoundingMode roundingMode;

@property (nonatomic, getter = isHighlighted) IBInspectable BOOL highlighted;

@property (nonatomic, copy) IBInspectable UIColor *textColor;
@property (nonatomic, copy) IBInspectable UIColor *outlineColor;

@end

Теперь можно создать storyboard (или xib) и разместить там наш view, и Xcode должен будет его успешно отобразить (предварительно собрав проект):

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

Встраиваем Touch ID в iOS приложение

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


Вступление


Начиная с iOS 8 Apple открывает доступ к возможности использования технологии Touch ID (аутентификации с помощью сканера отпечатков пальцев, встроенного в iPhone 5s) в сторонних приложениях. В связи с этим я хотел бы поделиться с вами подробной информацией о том, что же именно стало доступно разработчикам, как это встроить в свое приложение, каким поведением это обладает, а также поделиться удобной «оберткой», которая реализует наиболее, на мой взгляд, вероятный сценарий использования Touch ID.
Читать дальше →

Нативный segue слева направо в iOS

Время на прочтение3 мин
Охват и читатели14K
Предупреждаю сразу, это трюк. Он подойдёт далеко не всем и не всегда, но если вам нужно вывести окно с какой-то информацией слева от основного — то мой способ будет в самый раз.

Вполне возможно, что он всем уже известен, и я изобрёл велосипед, но я изобрёл его самостоятельно, после пары дней бесплодных попыток сделать нативный segue слева направо, так что рад поделиться.

Для начала, немного вводных данных. Segue — это способ смены экранов в iOS. Одна из самых популярных разновидностей, это push (с версии iOS 8 — show). Push segue всегда замещает текущий вид справа налево. То есть, у вас как-бы справа есть второе окно, и при нажатии кнопки оно переезжает налево, замещая первое.

Такое поведение вы видите в телефонной книге при выборе абонента. При этом, вверху появляется кнопка возврата на предыдущее окно, и, при нажатии на него, происходит искомая анимация слева направо.

Проблема в том, что мне нужно было сделать всё тоже самое, но в зеркальном отражении и стандартных способов для этого не существует (если верить Google). Есть масса инструкций, как сделать custom segue с похожей анимацией, но все они режут глаз своей неестественностью по сравнению с родным push.

Вот, что у меня получилось в итоге:



Используются исключительно стандартные методы и 0% кастомной анимации. Готовый пример на GitHub.
Читать дальше →

Разбираем протокол 2-wire JTAG

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


2-wire JTAG (он же двухпроводной JTAG, он же CompactJTAG, он же cJTAG) – это новомодный интерфейс, являющийся частью стандарта IEEE 1149.7-2009. Он обеспечивает ту же и даже большую функциональность, что и обычный JTAG (IEEE 1149.1), но использует всего два сигнала вместо четырех.

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

Очередной Moscow CocoaHeads состоится 3 октября

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


Эта неделя у нас богата на тематические встречи разработчиков. В пятницу, 3 октября, мы приглашаем всех желающих в офис Mail.Ru Group на Moscow CocoaHeads, традиционную встречу разработчиков под iOS/OS X. На этих встречах можно представить свой доклад, рассказать о своем проекте, поделиться опытом и просто пообщаться с единомышленниками. Совсем не обязательно быть гуру, можно просто прийти и послушать, что думают старшие товарищи, задать наболевшие вопросы. В этот раз выступать будут трое докладчиков, так что вечер будет насыщен информацией.
Читать дальше →

Групповой заказ печатных плат — мифы и реальность

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


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

Жизнь жестоко проучила меня. На деле необходимый минимум ограничений для обеспечении ощутимой выгоды оказался ГОРАЗДО больше чем я ожидал. В итоге у меня ничего не получилось. Мы, конечно, собрали и запустили один заказ. Все финансовые выкладки и технические тонкости под катом.
Читать дальше →

Мой опыт построения промышленной сети 1-Wire

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

Предыстория

Как и многие хабрапользователи, обладая некоторыми навыками и неплохой фантазией, как-то наткнулся на сайт, тогда еще он висел на народе, и посвящался сопряжению самодельных устройств с ПК. Именно тогда зародилось семя безудержного интереса, чтобы что-то сделать и управлять этим с компьютера. Тогда, конечно, все начиналось с lpt порта принтера и постепенно перерастало на com порт и в конечном на usb. Все бы ничего, пока не наткнулся на сайт, посвящений созданию системы умного дома. Тогда я понял, что мне действительно интересно. Опустим долгий и интересный рассказ и перейдем прямо к теме.Пишу данную статью в качестве любителя, не профи, и надеюсь она поможет вам создать свою сеть с нуля, или почерпнуть полезный опыт для своей сети.В статья я хочу описать создание своей сети 1wire с нуля, включая все этапы построения и полезные советы.
  • Проектирование, печать, травление, лужения и пайка печатной платы;
  • Монтаж промышленной шины 1wire;
  • Программные и аппаратные средства управления и мониторинга.
Читать дальше →

Трёхканальный UART АЦП на ATtiny13

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


Привет хабр. Я уже давно вынашивал сделать UART Аналогового-Цифрового Преобразователя на ATtiny13, зачем делать именно на ATtiny13 ведь есть, к примеру, ATmega8 имеет аж 6 (для DIP корпуса) портов на которых, при помощи мультиплексора, можно проводить измерение АЦП?
Причин несколько:

— ATtiny13 стоит дешевле;
— В ATtiny13 более оптимально используются ресурсы микроконтроллера;
— Размеры;
— Энергопотребление;
— Просто мне так захотелось.

Конечно на мои аргументы можно найти множество контраргументов, например ATmega8 при использовании V-USB может превратится в плату ввода/вывода которой не нужен переходник с UART на USB, правда кроме последнего, и с этим пожалуй не поспоришь.

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



Пару слов по схеме, кстати, вот она:
Хотя бы схему посмотрю

Сделай шаг к ПЛИС

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


Ты ждал знак? Вот он!

Много лет я не решался начать программировать ПЛИС, потому что это сложно, дорого и больно (как мне казалось). Но хорошо, когда есть друзья, которые помогают сделать первый шаг. И теперь я не понимаю одного — ПОЧЕМУ Я ЖДАЛ ТАК ДОЛГО?

Сейчас я помогу сделать первый шаг и тебе!

Я готов!

Apple планирует запустить iBeacon в 254 американских магазинах

Время на прочтение1 мин
Охват и читатели14K
По сообщениям прессы, сегодня Apple планирует запустить iBeacon в 254 американских магазинах.
Фоново было обновлено приложение Apple Store теперь оно поддерживает данную технологию.


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

Кручу, кручу, кручу, педали кручу

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

Дети подросли и оборвали провода на тренажере. Вело-табло приказало долго жить и крутить педали стало не интересно. Я решил починить табло по-нашенски, по ios-овски.

И проделал следующие шаги
  • примотал простейший BLE датчик к корпусу тренажера
  • прилепил магнит к шатуну
  • написал программу под iPad

Далее чуть-чуть подробнее, со схемой, текстом, фото и видео.
Читать дальше →

Доступен предзаказ микрокомпьютера Edison board для интернет вещей от Intel

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

Intel в ходе CES 2014 объявила о выпуске платформы Intel Edison — готовой к использованию вычислительной среды общего назначения с поддержкой беспроводной передачи данных. Она создана для изобретателей, предпринимателей и разработчиков, создающих компактные или носимые устройства. Микрокомпьютер платформы Intel Edison был похож на SD карту, но к конечному выпуску сильно изменился. На данный момент для Edison board уже доступны инструменты для разработчика(development kits), и возможен запуск Linux (специальные проект Yocto для малых устройств), а так же RTOS.
Читать дальше →

Быстрая морфология или файлы против MySQL

Время на прочтение6 мин
Охват и читатели21K
image
Входе одного проекта мне пришлось создать сверхбыструю русскую морфологию. Около 50.000 слов в секунду на довольно слабом ноутбуке, что всего в 2-3 раза медленнее чем стемминг (обрезка окончаний по правилам), но значительно его точнее. Это данные по обычному диску, на SSD или виртуальном диске поиск происходит значительно быстрее.

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

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

Реализуем pull to refresh и infinite scrolling на Swift

Время на прочтение4 мин
Охват и читатели49K
Возьмём за основу статью Знакомьтесь, Swift!, где показано как сделать простое приложение на Swift, и добавим туда такие известные и полезные штуки как pull to refresh и infinite scrolling используя встроенные возможности языка. Чтобы было еще интереснее, добавим немного асинхронности, иначе приложение будет каждый раз замирать на время обновления.


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

Информация

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