Search
Write a publication
Pull to refresh
0
0
Александр @procks

User

Send message

Беззнаковая арифметика в Java

Reading time5 min
Views96K
Как известно, в Java нет беззнаковых типов. Если в Си вы могли написать unsigned int (char, long), то в Java так не получится. Однако нередко возникает необходимость в выполнении арифметических операций именно с числами без знака. На первый взгляд кажется, что беззнаковые типы в принципе-то и не особо нужны (подумаешь, MaxInt для чисел со знаком меньше в два раза, если нужны числа больше, я просто возьму long и далее BigInteger). Но основное различие на самом деле не в том, сколько различных неотрицательных чисел можно положить в signed или unsigned int, а в том, как над ними производятся арифметические операции и сравнения. Если вы работаете с бинарными протоколами или с двоичной арифметикой, где важен каждый используемый бит, нужно уметь выполнять все основные операции в беззнаковом режиме. Рассмотрим эти операции по порядку:

Преобразование byte в short (int, long)


Обычный каст (int) myByte выполнит расширение до 32 бит со знаком — это означает, что если старший бит байта был установлен в 1, то результатом будет то же самое отрицательное число, но записанное в 32-битном формате:

0xff -> 0xffffffff (-1)

Часто это не то, чего бы мы хотели. Для того, чтобы выполнить расширение до 32 бит без знака и получить 0x000000ff, в Java можно записать:

int myInt = myByte & 0xff;
short myShort = myByte & 0xff;

Сравнение без учёта знака


Для беззнакового сравнения есть лаконичная формула:

int compareUnsigned(int a, int b) {
    return Integer.compare( a ^ 0x80000000, b ^ 0x80000000 );
}

Для byte, short и long, соответственно, константы будут 0x80, 0x8000 и 0x8000000000000000L.
Читать дальше →

Сложности разработки медицинского браслета в России

Reading time10 min
Views41K

Емкостные датчики для снятия одного отведения ЭКГ — два на каждый медицинский браслет

Мы решили делать медицинский браслет. В нашей команде каждый вплотную занимается и медицинской техникой, и IT. Например, мой последний крупный проект – проектирование и запуск в производство носимого компактного прибора для снятия ЭКГ (отдаленный аналог монитора Холтера).

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



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

Распознавание текста в ABBYY FineReader (1/2)

Reading time7 min
Views57K
Содержание
imageРаспознавание текста в ABBYY FineReader (1/2)
imageРаспознавание текста в ABBYY FineReader (2/2)

Систему распознавания текста в FineReader можно описать очень просто.

У нас есть страница с текстом, мы разбираем ее на текстовые блоки, затем блоки разбираем на отдельные строчки, строчки на слова, слова на буквы, буквы распознаем, дальше по цепочке собираем все обратно в текст страницы.



Выглядит очень просто, но дьявол, как обычно, кроется в деталях.

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



В этой статье мы начнём рассказ про распознавание текста от уровня строки и ниже.
Читать дальше →

Менеджеры паролей — краткий обзор

Reading time5 min
Views176K
Записывать пароли в файл txt — уже не то. Правильные пользователи хранят секретную информацию в правильных программах. Мы подготовили обзор пяти менеджеров паролей — удобных и функциональных. Их оценка основана исключительно на личном мнении.

#1 KeePass


www.keepass.info



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

Swift — нововведения

Reading time1 min
Views77K
image

Привет, Хабр!

Я не сомневаюсь, что многие из нас вчера смотрели презентацию WWDC 2014 от Apple. Были представлены новая операционная система OS X Yosemite, а так же iOS 8. Но главное, чем наверное взбудоражило Apple программистов во всем мире, так это новым языком — Swift!

Swift является новым инновационным языком программирования для Cocoa and Cocoa Touch с еще более кратким и выразительным синтаксисом, с помощью которого приложения пишутся молниеносно. Это делает написание кода интерактивнее и веселее, и работает бок о бок с Objective-C. По словам Федериги, некоторые функции Swift работают быстрее, чем в других объектно-ориентированных языках: например, сортировка сложных объектов происходит в 3,9 раза быстрее, чем в Python, и почти в полтора раза быстрее, чем в Objective-C.
Читать дальше →

Синтезатор речи. Теперь и на русском

Reading time2 min
Views102K
Меня всегда огорчало, что в Android не было синтезатора речи на русском. Изначально выбор языков был ограничен английским, испанским, французским, немецким и итальянским. Существовали отдельные коммерческие движки, а также производители могли добавить в свои устройства какой-нибудь движок с нужным языком, видимо договорившись с разработчиком. Но хотелось поддержки из коробки от самой «корпорации добра».
Читать дальше →

Почем нынче на рынке яблочки?

Reading time2 min
Views13K
Яблочный рынок приложений, или Apple App Store, потребляет и порождает деньги. Чем больше Вы вкладываете денег, тем выше отдача. Однако, заработанное не всегда больше потраченного. С недавних пор в моей голове вдруг сформировался типичный график потраченных/полученных средств.

image

Зеленая прямая — график потраченных денег. На что потраченных? На покупку траффика. В результате Ваше приложение выходит в ТОП100, ТОП25 или (ого!!) ТОП10 США и начинает приносить деньги. Красная линия — это заработанное. Если заработанное больше потраченного, то красная линия на графике выше зеленой и Вы отдыхаете на Гавайях, пересыпая между ладоней белый песок Вайкики.
-Чему равна точка Ж?,- спросит сообразительный читатель.

В 2011 году она равнялась 5000 долларов, этого хватало войти в ТОП10. Приложение приносило не менее 1000 долларов в день. Те времена ушли. Теперь в 2014 году надо потратить 50000 долларов, приложения из ТОП10 зарабатывают в день не менее 10000 долларов в день.

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

Как же определить показатель степени для Вашего приложения? Для этого не надо тратить 50000 долларов.
Ловко я Вас заманил под кат?
Читать дальше →

Продлеваем получение обновлений безопасности для Windows XP еще на 5 лет

Reading time2 min
Views215K
8 апреля 2014 года в мире высоких технологий случилось страшное — Microsoft наконец официально прекратила поддержку своей самой популярной операционной системы Windows XP. Операционная система осталась без заплаток для угроз нулевого дня, миллионы пользователей оказались в опасности заражения вирусами. Тем не менее, далеко не все спешат переходить на новые версии как этого желает софтверный гигант — кому-то жалко денег, кто-то привык к до боли знакомому интерфейсу и нескучной обоине с зелеными холмами. Намного серьезнее все обстоит в корпоративной среде, где на Windows XP работают тысячи машин, обновление которых выльется в миллионные траты и непредвиденные проблемы с годами отточенным корпоративным софтом.

Но оказывается, что есть простой хак, который позволяет продлить получение обновлений для системы безопасности Windows XP на ближайшие пять лет, т.е. до апреля 2019 года!
Читать дальше →

Хакаем Transcend WiFi SDHC карту памяти

Reading time10 min
Views147K
Перевод немного вольный, но смысл не потерян. Я (переводчик) заинтересовался этой карточкой давно и почти сразу заказал её, сегодня забрал с почты и не могу нарадоваться, но хочется больше, чем дает Transcend, а карточка, между прочим, Linux сервер с WiFi! Очень много буковок.

С недавнего времени я стал счастливым обладателем карты памяти Transcend WiFi SD, которая позволяет мне передавать фотографии с моей «зеркалки» (которая вообще то Sony NEX, зато компактная) на любое устройство с WiFi за несколько секунд. А так как мне нравится делать фотографии и делиться с ними на лету, то SD карточка, умеющая без проводов передавать картинки на мой телефон, кажется прекрасным решением. И это было так! (хотя всё еще так). Мобильное приложение может… не, должно быть получше (зачем скачивать 7МБ картинку для просмотра, чтобы потом ЕЩЕ раз скачать её, нажав на «Скачать»?), но вообще оно делает своё дело!
Читать дальше →

Алгоритм поведения привидений в игре Pac-Man

Reading time13 min
Views69K
Попробовал сделать перевод вчерашнего топика-ссылки на хабре. Заранее извиняюсь, если формулировки покажутся вам кривыми, я с удовольствием приму конструктивную критику. Поехали…

Мне кажется правильным начать этот блог с темы, которая вдохновила меня в первую очередь. Не так давно я наткнулся на статью Jamey Pittman «Pac-Man Dossier», в которой приводилось очень детальное описание механики игры Pac-Man. Она показалась мне очень интересной, поэтому этот сайт — попытка собрать такую же детальную информацию об остальных играх. Но в дань уважения я все же начну с Pac-Man, а в частности, с описания алгоритма поведения привидений. Это очень интересная тема и, надеюсь, мое объяснение будет немного более понятным и доступным, чем у Джейми, потому что я сосредоточусь лишь на поведении.

Об игре:
«В то время все доступные игры были очень жестокими — игры о войне и космических захватчиках. Не было ни одной игры для всех сразу, а особенно, которые понравились бы девушкам. Я хотел придумать «комическую» игру, которой могли бы наслаждаться даже девушки»
— Toru Iwatani, создатель Pac-Man


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

Самолёт, HD FPV, линк 600 км по 4G

Reading time2 min
Views56K
В продолжение к вчерашнему топику про машинку.

На машинке отлично покатались, но аппетит приходит во время езды — захотелось полетать. Само собой, над Питером, управляя из Москвы. Да простит меня Хабр, но самолёт — намного круче чем машинка, так что заслуживает отдельного топика.

У realizator как раз имеется самолёт Bixler, специально для экспериментов. Самолётик уже бывалый, успешно пережил немало морковок. Для тех кто не в теме — морковка это такая фигура высшего пилотажа, когда самолёт втыкается носом в землю.



Вот мы и подумали что ещё одна морковка погоды не сделает. Реализатор установил на Бикслер (который, кстати, имеет кличку «Кащей», ибо бессмертный) тот же самый комплект, который на машине стоял. Добавили один канал (для самолёта минимум три канала PWM требуется). Я у себя дома вместо курковой автомобильной аппы подключил самолётную аппаратуру управления (народную Турнигу — Turnigy 9x). Тот же самый сервер команд, та же рулилка виндовая — всё без изменений.

Реализатор поехал на полянку на окраине Питера, поездил рядышком — телеметрия с борта показала что сигнал Йоты намного слабее чем на Дворцовой площади был, но он есть и видео более-менее идёт.
Читать дальше →

У Mail.ru магические алгоритмы антиспама?

Reading time5 min
Views104K

Если у вас или у ваших клиентов почтовый ящик на mail.ru, будьте готовы к неприятностям.


Немного истории
Исторически сложилось так что почта mail.ru особо не пользовалась популярностью среди ИТ-шников и технарей, как и сама компания в целом. Но в последнее время компания изменилась в лучшую сторону, ребята собрались и сделали отличный почтовый сервис, перешли на HTTPS, даже успешно перевели почту на UTF-8. Недавно вот еще «Облако» сделали бесплатное на 1ТБ, и даже изменили к нему лицензионное соглашение. Ну и много всего у них происходит хорошего. Но
«не будем говорить о плохом, а лучше сделаем»
 цитаты великих людей :)

Вернемся в настоящее
Все администраторы у кого есть «сайт / блог / форум» наслышаны о проблемах с доставками писем в ящики для пользователей mail.ru, я их не оправдываю, ведь в большинстве случаев у них плохо настроен MTA, нет DKIM подписей, нет правильной PTR-записи, и все их письма «успешно» валятся в спам. («успешно» без сарказма). Но команда антиспама решила не останавливаться на таких примитивных проверках как валидные цифровые подписи DKIM, обратные записи PTR, «трастовость» домена и исходящего сервера и многое другое что используют бесплатные сервисы с устаревшей антиспам системой (eg. Yandex, Google, Yahoo), команда антиспама отказалась от этих проверок, и начала использовать настоящую магию!
Читать дальше →

RedHat блокирует российские учетные записи

Reading time2 min
Views74K
Добрый день.

В нашей компании используется дистрибутив Red Hat Enterprise Linux и, конечно, мы используем их поддержку.
Обнаружив, что аккаунт заблокирован, мы написали письмо в службу поддержки и быстро получили вполне понятный ответ.

image

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

Продажа приложений в Google Play из Украины

Reading time1 min
Views44K
Пока программисты (и не только) постсоветсткого пространства празднуют майские праздники Google без особой шумихи подключили возможность продавать приложения в Google Play в следующих странах: Греция, Люксембург, Румыния, Саудовская Аравия, Словакия, Турция, Украина, Вьетнам. Ура, товарищи!


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

Разъяснение http2

Reading time25 min
Views196K
На днях Даниэль Штенберг, один из участников группы HTTPbis IETF, которая ведёт разработку протокола http2, опубликовал в своём блоге крайне интересный документ «http2 explained». Небольшой PDF-документ на 26 страницах весьма доступным языком рассказывает о предпосылках и деталях реализации протокола http2.

Как мне кажется, на сегодняшний день это одно из самых лучших разъяснений о том, что такое протокол http2, зачем он нужен, как он повлияет на веб-разработку и какое будущее ждёт Интернет в связи с его появлением. Думаю, что всем людям, причастным к веб-разработке и веб-строению, информация будет полезна, ведь ожидается, что стандарт http2 будет принят уже в июне этого года после завершающей встречи группы HTTPbis в Нью Йорке.
Читать дальше →

Классификация с использованием муравьиного алгоритма

Reading time4 min
Views22K
На хабре уже был рассмотрен муравьиный алгоритм, позволяющий используя простые правила решить задачу поиска оптимального маршрута. В данной статье рассмотрено применение этого алгоритма к задаче классификации.
Читать дальше →

Список всевозможных методов монетизации мобильных игр

Reading time7 min
Views72K
Вы связаны с разработкой игр? Маркетингом игр? Сколько статей о монетизации игр вы прочли в последнее время? Лично я – очень много. Статьи, видео, слайды, аналитические обзоры и т.д. Конечно, понятно и очевидно, что никто не скажет вам супер-секрета успешной монетизации. Просто потому, что его нет и не может быть. Просто потому что, во-первых, плохую игру не спасет ни одна монетизация, а во-вторых, все игры разные.
Статья ниже – это список всевозможных монетизационных механик, которые встречались мне в играх, статьях и других источниках. Вместо того чтобы разбирать конкретные игры, я хочу перечислить как можно больше способов монетизации с небольшими комментариями.
Статья не предназначена для людей, считающих, что все это промыслы жадных разработчиков, а вся индустрия мобильных игр – это алчные корпоративные сволочи, закапывающие некогда прекрасные идеалы игрового мира не знавшего F2P.

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

24-битные I2C датчики давления HP203B и HP206C от Hope Microelectronics

Reading time8 min
Views57K
История началась, когда одна китайская компания по имени Hoperf прислала мне их новые датчики давления, на пробу. В статье описаны основные характеристики сенсоров, фичи, тесты ну и самое главное их результаты в виде графиков и словесных описаний к ним. В конце статьи выложены драйвера для этих датчиков, максимально абстрагированы от аппаратной части.

image

С лева на право: HP206C, HP203B и BMP085 от Bosch для сравнения (в тестах также участвует).
Много картинок..

Медленная работа SD карточек — кто виноват и что делать?

Reading time6 min
Views127K
Давно думал написать статью на Хабр, но все как-то не решался. Хотя и кажется, что есть мысли, которые были бы небезинтересны сообществу, но останавливает предположение, что это «кажется» проистекает от завышенной самооценки. Тем не менее попробую. Поскольку я профессионально занимаюсь электроникой, в частности, программированием микроконтроллеров, довольно-таки длительное время (как я подозреваю, дольше, чем живет большАя а может даже и бОльшая часть читателей Хабра), то за это время накопилось изрядное количество интересных случаев. Представляю на суд сообщества рассказ об одном из них.

Итак, в одной разработке мне потребовалось сохранять значительные объемы информации с целью последующей передачи через сеть в обрабатывающий центр. Поскольку полученное устройство предполагало серийное производство, был выбран вариант с применением относительно недорогих компонентов, и, в частности, микроконтроллера как центрального элемента системы. Поскольку в тот момент (середина 2012 года) предложение микроконтроллеров с Ethernet PHY на борту не отличалось разнообразием (да и сейчас положение не намного лучше), был выбран МК фирмы TI семейства Stellaris, конкретно LM3S8962, тем более что отладочная плата для него у меня уже имелась. МК на тот момент относительно новый, активно продвигаемый фирмой TI (это в конце 2013 года она ВНЕЗАПНО перевела всю серию в разряд NRND), и обладающий вполне достаточными для решения данной задачи параметрами. Для хранения информациии был выбран вариант с SD карточкой, в первую очередь из за их доступности и дешевизны, а также потому, что на отладочной плате наличествовало контактное устройство для них, а на поставляемом с платой отладки CD имелись многочисленные примеры, в том числе и для SD карт. Интерфейс к карточке был реализован простейший — SPI, предложенные примеры сходу заработали, принятое решение позволяло обрабатывать полученные данные до написания интерфейса при помощи элементарного переноса карточки из устройства в кард-ридер ПК, так что первоначальная отладка алгоритмов взаимодействия с объектом управления проблем не вызвало, по крайней мере в этой части проекта. Как все понимают, проблемы возникли несколько позже…
Читать дальше →

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity