...

суббота, 30 августа 2014 г.

Samsung представила новые умные часы Gear S и гарнитуру Gear Circle

Добрый вечер, Хабр!

В конце недели Samsung Electronics представила Gear S — следующее поколение умных носимых устройств компании. Новый гаджет обзавелся изогнутым дисплеем Super AMOLED и гибким ремешком, благодаря чему умные часы удобно располагаются на запястье пользователя. Ключевым отличием новинки от предшественников является встроенный 3G-модуль и слот для SIM-карты, с которыми Samsung Gear S становится вполне себе независимым мобильным устройством, хотя связка с мобильным телефоном остается доступной.



Samsung Gear S оснащен 2-дюймовым изогнутым Super AMOLED дисплеем с разрешением 360 × 480 пикселей, двухъядерным процессором с частотой 1 ГГц, 512 МБ оперативной памяти и 4 ГБ встроенной флеш-памяти. Работает все это добро на базе операционной системы Tizen. Емкость аккумулятора — 300 мА*ч (заряда должно хватить на два дня обычного использования), габариты умных часов составляют 39,8 × 58,3 × 12,5 мм. Модель Gear S соответствует стандарту защиты от влаги и пыли IP67.



Умные часы обладают адаптерами беспроводной связи Wi-Fi 802.11 b/g/n и Bluetooth 4.1, ресивером навигационных систем GPS/ГЛОНАСС, акселерометром, гироскопом, электронным компасом, барометром, датчиками освещённости и ультрафиолетового излучения, а также сенсором сердечного ритма. Носимое устройство позволяет пользователям совершать звонки через сотовую сеть, отправлять и принимать сообщения, а также получать уведомления из соц. сетей, календарей и приложений. Устройство легко переключается между 3G, Wi-Fi и Bluetooth соединениями в зависимости от нужд пользователя, а информация автоматически синхронизируется, когда умные часы работают в паре со смартфоном.



Как полагается для данного типа устройств, Samsung Gear S обладает возможностями для спорта и заботы о здоровье. Владельцы смогут использовать умные часы в качестве фитнес-трекера в связке с фирменным приложением Samsung S Health или Nike+ Running, а система навигации HERE не даст пользователю заблудиться в незнакомой местности.


Технические характеристики Gear S:

Сеть: 900/2100 или 850/1900 (3G); 900/1800 или 850/1900 (2G)

Процессор: двухъядерный, 1 ГГц

Экран: 2-дюймовый Super AMOLED (360 x 480)

Операционная система: Tizen

Интерфейсы и соединения: Wi-Fi 802.11 b/g/n, Bluetooth 4.1, A-GPS/ГЛОНАСС, USB 2.0

Датчики: акселерометр, гироскоп, электронный компас, барометр, датчики освещённости и УФ-излучения, датчик сердечного ритма

Память: 4 ГБ встроенной памяти + 512 МБ оперативной памяти

Размеры: 39,8 × 58,3 × 12,5 мм

Аккумулятор: литий-ионный, 300 мА*ч


Анонсом Gear S дело не ограничилось — Samsung также презентовала гарнитуру Gear Circle. Подключив её к смартфону посредством Bluetooth 3.0, пользователь сможет отвечать на звонки, прослушивать музыку и отдавать голосовые команды. Устройство оснащено виброзвонком, сенсорным датчиком и портом microUSB для подзарядки аккумулятора ёмкостью 180 мА*ч, заряда которого хватит на 11 часов разговора. Когда гарнитура не используется, её можно носить на шее, используя специальный магнитный замок в качестве застежки.



Технические характеристики Gear Circle:

Динамик: 12Φ

Микрофон: Single MEMS

Кодек: SBC, apt-X, Samsung HD

Дополнительные функции: магнитная застежка, голосовые оповещения, Sound Alive

Интерфейсы и соединения: Bluetooth 3.0: HSP/HFP/A2DP/AVRCP, до 8 соединений, до 2 устройств одновременно, microUSB (подзарядка)

Датчики: датчик магнитного поля, сенсорный датчик

Память: 4 ГБ встроенной памяти + 512 МБ оперативной памяти

Аккумулятор: литий-ионный, 180 мА*ч (режим ожидания: 300ч / разговор: 11ч / воспроизведение музыки: 9ч)


Обе новинки Samsung поступят в продажу в октябре, но розничная цена на данный момент остается неизвестной.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


NSProxy, как способ срезать на поворотах

Как многие читали в книгах, в языке Objective-C изначально есть два корневых класса — NSObject и NSProxy. И если на первом основано практически все и с ним невозможно не столкнуться, то вторым пользуются значительно реже. В этой небольшой статье я опишу те применения этого класса, которые приходилось использовать мне.



В качестве первого примера, напомню о такой штуке, как UIAppearance — насколько мне известно — единственное использование NSProxy в базовых iOS фреймворках. Его задача заключается в предварительном конфигурировании группы UIKit объектов в одном месте. Фактически, вы описываете некоторый набор действий, который будет применяться к каждому создаваемому объекту (таких как задание цвета, шрифта и других), удовлетворяющему некоторым условиям (сейчас таких условий два: класс объекта и класс объекта, содержащего наш объект как subview). Есть замечательная статья, посвященная использованию, возможностям и побочным эффектам такого инструмента, поэтому более не будем на этом останавливаться.

Если честно, это не густо. Для такого гордого статуса, как «один из двух корневых классов», слишком мало примеров конструктивного использования. По своему личному опыту и опыту моих знакомых разработчиков — это достаточно сильно затрудняет начальное понимание этой сущности и, тем самым, как бы отговаривает нас от ее использования. Но интересно же! И со временем стали появляться задачи, для которых NSProxy является потрясающим по удобству инструментом.


Декорирование объектов




В реализации паттерна «декоратор» есть один достаточно неудобный аспект — интерфейс, собственно, декоратора. Если у нас имеется некоторая иерархия объектов, например такая

@interface SomeClass : NSObject <SomeClassInterface>
@end

@interface ChildClass : SomeClass
-(void) additionalMethod;
@end

@interface DecoratorClass : NSObject <SomeClassInterface>

...

ChildClass *instance = [ChildClass new];
id decoratedInstance = [DecoratorClass decoratedInstanceOf:instance]




То по понятным причинам decoratedInstance уже не сможет выполнить additionalMethod. И нам остается либо писать категории, либо внедрять в корневой класс какие-то хуки, либо заниматься еще каким-то подобным непотребством. Теперь посмотрим, как это можно решить, используя NSProxy.

@interface SomeClass : NSObject;
-(int) getNumber;
-(NSString*) getString;
@end


@interface SimpleDecorator : NSProxy
@property (nonatomic, strong) SomeClass *instance;
+(instancetype) decoratedInstanceOf:(SomeClass*)instance;
@end

@implementation SimpleDecorator

-(instancetype) initWithObject:(SomeClass*)object
{
/* маленькое напоминание - NSProxy не имеет встроенного инициализатора, как NSObject. Поэтому вызов [super init] не нужен*/
_instance = object;
return self;
}

+(instancetype) decoratedInstanceOf:(SomeClass*)instance
{
return [[self alloc] initWithObject:instance];
}

/* основные методы NSProxy - они отвечают за то, что мы делаем с теми методами, которые мы не можем обработать самостоятельно. В частности, сюда пойдут все вызовы, которые мы не декорировали - и самого класса SomeClass и его подклассов */
- (NSMethodSignature *)methodSignatureForSelector:(SEL)selector
{
return [self.instance methodSignatureForSelector:selector];
}

- (void)forwardInvocation:(NSInvocation *)invocation
{
/* этой строчкой мы, фактически, говорим, что если мы не можем обработать какой-то метод, то пусть его обработает, собственно наш объект В данном случае так произойдет, например, при вызове метода getString */
[invocation invokeWithTarget:self.instance];
}

/* собственно декорируемый метод. Так как мы можем его обработать внутри инстанса NSProxy - предыдущие два метода вызываться не будут */
- (int) getNumber
{
return [self.instance getNumber] + 1;
}

@end





И, собственно, пример использования такой конструкции:

SomeClass *object = [SomeClass new];
object = (SomeClass*)[SimpleDecorator decoratedInstanceOf:object];
NSLog(@"%d", [object getNumber]);
NSLog(@"%@", [object getString]);




При таком подходе на месте SomeClass может быть любой из его наследник и полученный декорированный объект будет корректно откликаться на все отправленные ему сообщения.

Отложенная настройка




По сути, мы сейчас будем решать задачу, похожу на ту, которую решает UIAppearance. При работе над проектом, построенным на основе архитектуры, предлагаемой библиотектой-паттерном PureMVC ( http://ift.tt/1u9w7e0 ) пришлось неоднократно сталкиваться с ситуацией, когда в какой-то точке кода мы инициируем цепочку команд-действий, результатом которых будет некоторая контекстно-зависимая сущность — например, всплывающее окно, закрытие которого запускает следующие действия, зависящие от контекста, в котором было вызвано окно. Раньше для этого использовался один из двух вариантов:

— Протяжка. Через всю цепочку действий мы передаем дополнительные, как-то структурированные данные, которые обрабатываем на месте создания окна. Довольно накладный и не очень красивый способ, особенно если некоторые действия предполагают ветвление.

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

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

Теперь немного кода.


Сначала класс, который мы хотим использовать для отложенной настройки:



/* Обычное всплывающее окно, которое показывает сообщение. */
@interface Popup : NSObject;
/* Ключ необходим для того, чтобы можно было разделять, какие отложенные сообщения кто обрабатывает */
@property (nonatomic, strong) NSString* key;
@property (nonatomic, strong) NSString* message;

/* мы не будем напрямую обращаться к прокси, обращаясь к нему только в контексте создаваемых объектов, как и в случае UIAppearance */
+(DelayedActionsProxy*) delayedInitializerForKey:(NSString*)key;
/* Показать всплывающее окошко. Собственно это место и является точкой, когда будут применены отложенные настройки */
-(void) showPopup
@end

@implementation Popup

-(void) showPopup
{
[DelayedActionsProxy invokeDelayedInvocationsWithTarget:self];
/*...*/
}

+(DelayedActionsProxy*) delayedInitializerForKey:(NSString*)key
{
return [DelayedActionsProxy sharedProxyForKey:key fromClass:[self class]];
}

@end




А теперь, собственно, прокси

@interface DelayedActionsProxy : NSProxy
+(void) invokeDelayedInvocationsWithTarget:(Popup*) target;
+(instancetype) sharedProxyForKey:(NSString*)key fromClass:(Class)objectClass;
@end


@interface DelayedActionsProxy()
/* ключ нас интересует для разделения поступающих в прокси отложенных вызовов по разным объектам, а класс объекта - для корректного построения сигнатуры вызова */
@property (nonatomic, strong) NSString *currentKey;
@property (nonatomic, assign) Class currentClass;
@property (nonatomic, strong) NSMutableDictionary *delayedInvocations;
@end

@implementation DelayedActionsProxy

-(instancetype) init
{
self.delayedInvocations = [NSMutableDictionary new];
return self;
}

static DelayedActionsProxy *proxy = nil;
+(instancetype) sharedProxyForKey:(NSString*)key fromClass:(Class)objectClass
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
proxy = [[self alloc] init];
});
proxy.currentKey = key;
proxy.currentClass = objectClass;
return proxy;
}

/* Предполагается использование класса в виде [[Popup delayedInitializerForKey:@"key"] setText:@"someText"], то есть к моменту вызова - еще не существует вызываемого объекта, и уже заполнятся поля currentKey и currentClass */

- (NSMethodSignature *)methodSignatureForSelector:(SEL)selector
{
/* Так как currentClass представляет собой класс, а не объект, мы должны воспользоваться методом instanceMethodSignature вместо methodSignature */
return [self.currentClass instanceMethodSignatureForSelector:selector];
}

- (void)forwardInvocation:(NSInvocation *)invocation
{
if (!self.delayedInvocations[self.currentKey])
{
self.delayedInvocations[self.currentKey] = [NSMutableArray new];
}
/* мы не форвардим получаемые сообщения, а аккуратненько их складываем */
[self.delayedInvocations[self.currentKey] addObject:invocation];
}

/* чтобы вызвать их по требованию */
+(void) invokeDelayedInvocationsWithTarget:(Popup*) target
{
for (NSInvocation *invocation in proxy.delayedInvocations[proxy.currentKey])
{
[invocation invokeWithTarget:target];
}
[proxy.delayedInvocations removeObjectForKey:proxy.currentKey];
}

@end




И пример использования

[[Popup delayedInitializerForKey:@"key"] setText:@"someText"];


Облегчение работы с UI-объектами




В многопоточных приложениях нередко, из-за невнимательности и недостаточного планирования на начальном этапе, можно получить код, который выполняется в другом потоке, но которому страсть как нужно модифицировать UI (или БД, или еще что-нибудь весьма чувствительное к многопоточному доступу). Код начинает обрастать многочисленными performSelectorOnMainThread, dispatch_async, или того хуже — обертками над NSInvocation, поскольку performSelectorOnMainThread не дает использовать больше одного параметра. Почему бы не обзавестись единой оберткой для этого?

Пусть у нас есть какой-то объект (например объект в игре на Cocos2D)



@interface Entity : NSObject;
@property (nonatomic, strong) CCNode* node;

@end

@implementation Entity

-(void)setRepresentation:(CCNode *)node
{
/* какое-то количество проверок корректности выставления
...
*/
_node = (CCNode*)[MainThreadProxy node];
}

@end




И, собственно прокси

@interface MainThreadProxy : NSProxy
+(instancetype) proxyWithObject:(id)object;
/* это стоит вынести в отдельный метод для того, чтобы можно было делать цепочку действий с одним и тем же объектом, без постоянного форвардинга */
-(void)performBlock:(void (^)(id object))block;
@end


@interface MainThreadProxy()
@property (nonatomic, strong) id object;
@end

@implementation MainThreadProxy

-(instancetype) initWithObject:(id)object
{
self.object = object;
return self;
}

+(instancetype) proxyWithObject:(id)object
{
return [[self alloc] initWithObject:object];
}
- (NSMethodSignature *)methodSignatureForSelector:(SEL)selector
{
return [self.object methodSignatureForSelector:selector];
}

- (void)forwardInvocation:(NSInvocation *)invocation
{
if ([NSThread isMainThread])
{
[invocation invokeWithTarget:self.object];
}
else
{
[invocation performSelectorOnMainThread:@selector(invokeWithTarget:) withObject:self.object waitUntilDone:YES];
}
}

-(void)performBlock:(void (^)(id object))block
{
if ([NSThread isMainThread])
{
block(self.object);
}
else
{
dispatch_sync(dispatch_get_main_queue(), ^{block(self.object);});
}
}

@end




Пример использования совершенно обычен,

[entity.node render];




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

Завершение




В качестве идей для чего можно применять прокси, можно еще выделить такие вещи как

— Маскирование удаленного объекта — работать с объектом, представляющим из себя репрезентацию какого-то сервиса с нефиксированным временем ответа (например БД на сайте, объект на клиенте, с которым ты соединен по BlueTooth), как обычный объект. Просто медленный.

— Обертка в Прокси таймера, для того, чтобы стал уместен синтаксис навроде

[[object makeCallWithTimeInterval:1.0f andRepeatCount:2] someMethod];




и другие.

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

[entity.node.effect update];




поведет себя не очень корректно. Это, конечно, можно исправить, но у этих исправлений тоже есть своя цена. Рекомендую не забывать об этом, когда работаете с NSProxy.

Post Scriptum




Вообще, о NSProxy можно почитать еще например тут, или тут. NSProxy глубоко используется в таком инструменте как OCMock. Так или иначе это достаточно гибкий и удобный инструмент, пригодный для некоторого класса задач — и с ним, как минимум, имеет смыл ознакомиться.

This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


На е-байках по России или в поисках розеток за МКАД-ом

«Вы уверены в своем подводе? У вас 240в розетках? Тогда мы едем к вам!»

Прошлогодний опыт уже показал успешность «межгалактических полетов» на электричестве, а так же скорректировал точку входа в группу авантюристов с двух до 4квтч — это позволило бы ехать по 200км без подзарядки и следовательно увеличить средний пробег за день. Поэтому по весне был собран новый транспорт и ближе к середине лета устроен тестдрайв до Рязани и обратно. Соотвествующий ролик прилагается:










Понижать градус было нельзя. Поэтому планы были грандиозные:



МСК-Владимир-НН-Казань-Пермь-Екб-Челябинск-Уфа-Самара-Вольск-Пенза\Саратов-Тамбов-МСК


Всего 4000 с копейками километров. График был довольно жеский, требовалось уложиться в типичные 25-28 календарных дней — отпуска, увы, не резиновые. В зависимости от сроков еще планировался крюк до Воронежа в Губкин к старым знакомым, а так же очень хотелось проверить, как там поживает в Задонске оставленный в щитке XT60 в прошлом году.


Изначально в авантюру вписалось 6 человек, но в итоге поехало только четверо. Это я, Андрей (AndreyM), Коля (Nick_DR), и Алексей (FasR7). Фактически поехал прошлогодний состав за вычетом Амарантуса


В 9 утра дня «Х» все заряжены, собраны и готовы к выезду:










Первый же день и первые сюрпризы — изначально планировалось быть к вечеру уже в Нижнем, но судьба распорядилась иначе. Подвод в домике, в котором нас ждали друзья на промежуточном питстопе во Владимире, не выдержал нагрузки и сплавился. Ибо из 12 квадратов подводной люмишки дальше шли сопли в 0.75мм² на две квартиры. Как они не пыхнули до сих пор, учитывая наличие чайников и стиралок — одному богу известно. В общем сопли мы поменяли, положили туда по 5мм² на квартиру и процесс пошел. Но день был безвозвратно утерян. Поэтому утро следующего дня мы встречали по прежнему во Владимире:










В Нижний Новгород мы добрались относительно быстро, хотя второй день тоже не обошелся без нежданчика. Коля, успев долететь до города несколько раньше нас, встал там на зарядку и дернул ручку тормоза, чтоб подсветить дисплей. Зря, зря он это сделал, т.к. в последних прошивках контроллера это могло привести к его баху (что собсно и произошло). Благо у нас был резервный и мы устремились к нему на выручку:










Пристраиваешься за такой, и мчишь 80+ с расходом как на 40. В два раза быстрее и два раза экономнее. За время поездки появилась даже своя классификация доноров:



























Пригородная электричкаСтаренький камаз, груженый землей\овощами под завязкуСкорость 60 по прямой, 55 в горку, 65 под горку. Едут обычно не дальше 20км от своего города\деревни. Отсюда и название
ЧемоданПригородная электричка с прицепомСкорость 70 по прямой, 45 в горку, 65 под горку. Быстрее в горку уже просто не вытягивает движок. Обычно встречаются на перегонах между соседними селами. Название произошло от формы последнего «вагона» — напоминает чемодан на колесиках
Поезд дальнего следованияОбычная фураСкорость 80 по прямой, 75 в горку, 90 под горку. Под горку разгоняется для облегчения въезда в неё же. Встречаются везде, едут по трассе не меньше 100км, иногда прямо от города до города, жаль только, на полпути обычно сворачивают поесть :)
СапсанОсобо шустрая фураСкорость 90-95 по прямой, 97 в горку, 110 под горку. Под горку опять же разгоняются для облегчения въезда в нее же. Внешне ничем не отличается от обычной фуры, не поймешь, пока не подсядешь. Впрочем, если контроллер позволяет — можно мчать и за ней.

В общем в Нижнем мы были уже к вечеру, даже попробовали найти офис ПЭК, чтоб отправить мертвый контроллер назад в МСК по гарантии, но минут на 5 не успели до его закрытия.



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




Правда утренние похождения не прошли совсем уж бесследно, ближе к обеду, и пока Андрей и Коля отправляли в ПЭК контроллер, Алексея вырубило прямо на его диване :)

До Казани сразу не доехали, встали с палатками на ночь у речки Сура:


В самой Казани нас уже ждали местные электробайкеры со своей культурной программой по паркам, городу и пляжам:


Отдельного упоминания достойна вечерняя зарядка. Опять… да, проводка, но немного не так, как вы подумали. Как было дело: вечером, по всему поселку вдруг выключился свет. Мы даже пошутили, что сначала вырубали один дом, теперь поселок, так и до города не далеко. Хозяин успокоил и сказал, что это частое явление. И без всяких задних мыслей пошел завел генератор. Который… фанфары… воткнут в обычную розетку через… еще раз фанфары… 0.75 квадратов. Генератор конечно запустился, и даже проработал. Минут 5. Потом раздался хлопок и все поняли что произошло. В общем генераторную переноску тоже прокачали, да и байки от греха подальше выключили, а то он бедный и так еле работал, если бы еще водонасос из скважины подключился — совсем бы остановился. Впрочем через полчаса свет дали и процесс пошел нормальным путем.


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










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










а во вторых, на следующее утро, когда мы от ехали от места ночлега на 150км и встали на подзарядку — у меня почти сразу бахнул мой блок питания. Так у меня появился «груз 200», который я возил вплоть до Уфы (где наконец дошел до почты и выслал её сам себе в МСК). Пришлось заряжаться после Алексея, и с задержкой в 3 часа, уже ночью, я в одиночку въехал в город. Учитывая, что по утру на шорткате с места ночлега (грунтовка с ямами в полколеса и гребенкой от тракторов) у меня еще отвалилась одна из двух фар, было не очень приятно. На следующий день восстановили мою фару, придумали что делать с зарядкой — у нас одна была сразу на 3квт, соотвественно требовалось лишь спаять «SharePoint» и коптить с нее сразу два байка по полтора. Покидали город через Пермскую ГЭС, оч величественное сооружение:










К сожалению, такое приветливое солнышко длилось не долго, и все оставшиеся 400км до Екатеринбурга пришлось провести под проливным дождем и грозами, которые стали причиной двух поломок. Во первых, в самом Екб, как выяснилось, у всех отказали клавиатуры дисплея — под дождем на скорости они расслаивались, вода попадала на контакты и привет, ни разблокировать ебайк, ни профиль переключить. А во вторых, по старой доброй традиции, улетевший вперед Коля, попал в самый центр грозы и встал там на зарядку. Как он потом рассказывал, в домик строителей, где он попросил розетку, шандарахнуло четыре раза. Люди высыпались из него как муравьи с криками «там летает свет». Естественно вся электрика погорела, непонятно только каким чудом выжила сама зарядка ебайка и в общем сам вел. У контроллера вылетел стабилизатор на 5в и ехать он мог только в безсенсерном режиме, ибо питание на холлы не поступало. Все это было устранено в Екатеринбурге, место размещения в котором тоже достойно отдельного упоминания — это радиотехнический колледж, по согласованию с директором:










Андрей оптимистично полагал, что дорога до Челябинска будет приятнее, ха! Еще хуже, ибо до Екб было хоть тепло, а тут еще и холодно:










Так или иначе, но в Челабинск мы попали, и там нам вручили те самые медальки, что в самом начале статьи. Пока мы обедали в кафешке, нашлась ну очень смелая девушка, рискнувшая подойти к толпе парней и спросить, чей там байк стоит чуть в сторонке. Девушка оказалась мотоциклисткой со стажем, байк оказался моим, и проведя ликбез что к чему, передал управление ей. Сначала с сумками, потом сумки сняли и отправили кататься подальше. Вернулась она пешком и немного свернутым рулем — какой то месный бомбила подрезал её при выезде со двора. Срочно доставили её в тавмопукт и дождались диагоза — ничего страшного.










Следующим пунктом плана был Миасс, где нас поджидала очередная поломка:










подматывание фумленты увы, не помогло, поэтому просто поставили туда пружину. Была Fox Float, стала Fox Vanila =) Так и поехали. Дорога до Уфы запомнилась серпантинами с шикарными видами и моментом, когда мне пришлось попедалить с десяток километров, т.к. зарядка у меня была по прежнему общая с Андреем и я думал, что они всё еще в переди. Верней как, в горку я заталкивал, с горки летел 50, по прямой тошнил 15. Но зато попавшаяся Лукойловская заправка оказалась на редкость хороша — тянула 5квт без просадки даже в переноске (230в)










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










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



а вот после Тамбова, когда Алексей уже отъехал на 100км в сторону Москвы, у него развалились подшипники передней втулки. Причем мы их слышали в Тамбове, покрутили на весу, поняли что люфтят, но решили что еще чутка (500км) до дома походят, потому что искать в субботу импортный подшипник было негде. А в понедельник ему надо было уже выходить на работу. Я еще не знал, поеду напрямую или все же дождусь Андрея и Колю и помчу с ними до Губкина, поэтому остался. В общем, на 5 утра воскресенья была вынужденно проведена спасательная миссия, а я окончательно определился с маршрутом:










Так мы дальше и ехали с Лехой, пока нас не остановили гайцы «поржать»:










это уже был далеко не первый раз, но первый, когда на мне висела камера. До Москвы оставалось уже совсем ничего, и в 12 ночи мы были в пределах МКАД-а.


Немного сухой статистки. Список потерь:


1 подвод в жилом доме (разгильдяйство электриков)

3 клавиатуры на дисплеях (дождь)

4 контроллера (три по вине багов, один молния)

1 вилка (вот уж точно неожиданность)

1 подшипник втулки (скорее всего из за дождя)

2 зарядки (моя — возможно по причине выкушенного из нее входного фильтра в целях облегчайзинга и Алексея — отвалился от вибраций дроссель, припаяли в тот же день)


общий километраж — 4500км, из 22 дней общего времени путешествия непосредственно в пути — 15 дней. 5 часов езды перемежаются 2..3 часовой зарядкой, соотвественно в день можно делать три полных круга, 500км


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


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Самый дурацкий патент месяца. Новый конкурс от EFF

Месяц назад Фонд электронных рубежей объявил Конкурс на самый дурацкий патент месяца, выданный патентным ведомством США (USPTO). Прошло 30 дней — и определился первый победитель!

В декабре прошлого года USPTO выдало патент № 8,609,915 на «сильнодействующее лекарство», которое «борется с раком, раковыми клетками и убивает рак». Из описания следует, что «лекарство» эффективно ещё и против множества других болезней. Что же это за чудесное изобретение?


Волшебное лекарство состоит из «масла примулы вечерней, риса, кунжута, зелёных бобов, кофе, мяса, сыра, молока, экстракта зелёного чая, семян примулы и вина». Как сказано в патенте, «оно действует».



Нет причин сомневаться в искренности человека, который подал заявку на получение такого патента, пишет EFF, но как её мог одобрить эксперт, который просматривает документы? По идее, группа экспертов должна отказывать заявкам, в соответствии с множеством установленных оснований для отказа, включая неопределённость и отсутствие пользы.


Эта заявка подходит под многие причины отказа. Главная из них — отсутствие доказательств, что «лекарство» на самом деле действует. Однако, нынешняя патентная система действует настолько неэффективно, что появляются даже сомнения в том, что эксперт вообще читал эту заявку. Кстати, «изобретатель» в своё время отсидел срок за мошенничество. Хотя бы это можно было проверить поиском в Google.


Фонд электронных рубежей отмечает: кроме патента-победителя, других претендентов на победу было несложно найти. По мнению юристов EFF, всё это однозначно указывает на необходимость патентной реформы.


Конкурс EFF призван привлечь внимание общественности к проблеме качества патентов, которые выдают официальные органы. «Мы видели патент на “сканирование электронной почты”, на “двустороннее и многостороннее принятие решений”. Глупых патентов настолько много, что мы в EFF выделили отдельного сотрудника, чтобы устранить их. Мы хотели бы составить каталог их всех, но десятки тысяч низкокачественных софтверных патентов выдают каждый год, так что у нас не хватит времени и ресурсов, чтобы решить эту задачу», — пишет EFF.


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


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Internet Archive закачал на Flickr более 14 млн свободных исторических изображений


Один из работников Internet Archive разработал программу для автоматического извлечения иллюстраций из миллионов книг в процессе OCR-сканирования, которое сейчас осуществляет Internet Archive. Калев Литару (Kalev Leetaru) использовал существующий модуль распознавания текста: тот сначала определяет границы иллюстраций, чтобы отбросить иллюстрации перед OCR. Но зачем материалу пропадать?


Все извлечённые иллюстрации были выровнены, кадрированы, очищены и закачаны на фотохостинг Flickr с сопровождающим текстом из книги. Таким образом, возможен полнотекстовый поиск по архиву иллюстраций Internet Archive Book Images, которые находятся в общественном достоянии.




Галерея картинок из старых книг — очень увлекательное дело. Здесь можно найти и пейзажи, и иллюстрации по кулинарному делу, и ноты, и картинки из медицинских справочников, и старые карты. Каталог иллюстраций приглашает к своеобразному «путешествию во времени»: введите какой-нибудь термин (телефон, самолёт) — и увидите, как эта вещь выглядела раньше.




Многие картинки — это какие-то странные непонятные объекты из прошлого. Без описания и не поймёшь, что это такое.



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


Для каждой иллюстрации указано название книги, год её издания и страница, на которой встретилась иллюстрация. Есть ссылка, чтобы прочитать книгу в онлайне (все они опубликованы на сайте Internet Archive). В рамках этого проекта оцифровано уже 600 млн страниц.


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


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


В Firefox Developer Tools добавлена поддержка событий jQuery

Встроенные инструменты разработки в Firefox становятся все удобнее. image

Возможность просматривать эвенты в Firefox developer tools была доступна и раньше, но поддерживала она только нативные js события. Для этого, надо открыть Dev tools, перейти на вкладку Inspector и если на элемент было повешено событие, то справа от него отображалась пиктограмма «ev», при нажатии по которой можно было посмотреть обработчик.



Выглядело все это примерно так:

image

Попробовать это можно здесь.

Начиная с Nightly версии от 2014-08-29 к нативным событиям была добавлена поддержка jQuery. Теперь при наведении на событие, при условии что оно было повешено с помощью jQuery, будет показано две вкладки. Одна это внутренняя функция библиотеки, она не очень полезна, но вот на второй вкладке мы можем посмотреть искомое событие.

image

Поэкспериментировать можно тут.


Так же планируется добавить поддержку следующих библиотек: Prototype, YUI, Mootools, React, Ember, Angular.


Другие инструменты для просмотра событий:




Приятной разработки!

This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


MIDI-контроллер электронной ударной установки своими руками на stm32 часть 2



Видео




Как и обещал, выкладываю пробное видео, на котором мой коллега показывает установку в работе.


Конструкция




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

image

image

Прошивки:




STM32F103C8 (10 каналов)

STM32F103RB (12 каналов)

STM32F407 (12 каналов)

This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


[Перевод] Разработчики YUI объявили о прекращении дальнейшей разработки библиотеки

Ниже перевод поста из блога команды разработчиков.

Yahoo User Interface Library (YUI) используется в Yahoo с 2005 года. Библиотека была представлена публично 13 февраля 2006 года. Хотя YUI очень сильно преобразилась с того времени, она всегда преследовала одну большую цель — предоставить разработчикам обширный набор инструментов для легкого создания богатых web-приложений.


YUI — это важная часть истории Yahoo. Были написаны миллионы строк кода, использующие YUI, и этот код до сих пор используется сегодня. Как бы то ни было, для нас стало ясно — индустрия движется в ином направлении.



Многие из вас знают, что web-платформа подверглась значительным изменениям за последние годы. JavaScript на данный момент наиболее распространен, чем когда бы то ни было. Появление Node.js позволило использовать JavaScript на стороне сервера, тем самым открыв дверь для создания изоморфных одностраничных приложений. Новые менеджеры пакетов (npm, bower) побудили рост экосистемы сторонних, открытых и выполняющих одну задачу инструментов, которые дополняют друг друга, отдавая честь философии Unix и предоставляя отличную гибкость. Новые инструменты сборки (Grunt и его экосистема плагинов, Broccoli, Gulp) упростили сборку этих крошечных модулей в большие приложения. Новые фреймворки (Backbone, React, Ember, Polymer, Angular и др.) помогли в проектировании более гибких и масштабируемых web-приложений. Новые инструменты тестирования (Mocha, Casper, Karma и др.) снизили порог вхождения для построения надежных средств непрерывного развертывания. Различные стандарты (W3C, ECMA) привели в порядок то, что годами исправлялось и дополнялось большими JavaScript фреймворками, позволив использовать современные возможности web-платформы без привлечения дополнительных инструментов. Наконец, разработчики браузеров сейчас более охотно вносят улучшения в свои продукты, реализуя последние возможности стандартов. С так называемыми «вечнозелеными браузерами», которые делают процесс обновления браузера настолько простым насколько возможным, мы можем ожидать значительного снижения разнообразия пользовательских агентов.


Последствия эволюции web-технологий заключаются в том, что большие JavaScript библиотеки, такие как YUI, сейчас получают значительно меньше внимания от сообщества. Многие разработчики смотрят сегодня на большие JavaScript библиотеки, как на сады, которые находятся за большой стеной. Они не хотят стать их заложниками. Как результат, число предложений об улучшении библиотеки и запросов на слияние, которые мы получили за несколько последних лет, медленно снизилось до объемов крошечного ручья. У большинства основных модулей YUI больше нет активных ответственных разработчиков, и теперь они просто полагаются на случайные патчи от внешних разработчиков. Благодаря нескольким ответственным за ревью кода, все еще есть надежда на то, что приходящие патчи будут проверены быстро и тщательно.


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


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


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Skype-бот для деплоя без Skype API

Вы, наверное, знакомы с использованием чат-ботов для управления чем-либо. Например, очень удобно запускать сборку или раскладку, просто написав сообщение одному из своих контактов в IM.

Для скайпа существуют различные готовые боты, один из представителей — Sevabot. Все они используют API скайпа, который Microsoft собирается убить, поэтому работа всех этих ботов скоро может стать невозможной. А мне бы этого не хотелось — я кое-где использую их для запуска деплоя.


Как же быть?




Все живущие ныне боты работают сбоку от десктопной версии skype. Я организую всё так же, но подлезу к скайпу не через API.

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



import sys
import signal
from time import sleep
import sqlite3

if len(sys.argv) != 3:
sys.stderr.write("Usage: %s <path to skype `main.db` file> <watch interval in seconds>\n" % sys.argv[0])
sys.exit(1)

def int_handler(signum, frame):
sys.exit(0)
signal.signal(signal.SIGINT, int_handler)

dbfilename = sys.argv[1]
interval = float(sys.argv[2])

conn = sqlite3.connect(dbfilename)
c = conn.cursor()
c.execute("select id from Messages where id = (select max(id) from Messages);")
(last_msg_id,) = c.fetchone()
while True:
sleep(interval)
for id, body in c.execute("select id, body_xml from Messages where id > ?;", (last_msg_id,)):
last_msg_id = max(id, last_msg_id)
print body




Запускаем: ./skype-watch.py ~/.Skype/skype_login/main.db 1

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


Ну и что?




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

Плюсы:


  • Не нужен API.

  • Просто как топор, мало зависимостей.




Минусы:


  • Работает только на приём.

  • Не использует хуки sqlite3.


Реп на гитхабе


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Рендеринг 3D-иллюстраций для IKEA


Глядя на иллюстрации в каталоге IKEA, сложно поверить, что 75% фотографий продуктов и 35% интерьеров — это чистая компьютерная графика. В остальных интерьерах фотография используется только частично. Собственно, настоящих снимков там вообще почти не осталось.



В компании создан «банк» из 25 000 трёхмерных моделей, из которых и составляются потрясающе реалистичные интерьеры. О такой программе мечтал бы каждый, кто обставляет квартиру или дом.


Оцифровкой моделей и рендерингом занимается специальный отдел визуализации в компании IKEA Communications AB под руководством Мартина Энтеда (Martin Enthed). Кроме оцифровки, их компания занимается также разработкой и выпуском каталогов, инструкций по сборке мебели, обновлением веб-сайта. Они же делают и мобильное приложение.


Первые рендеры начали делать в 2004 году, они выходили весьма неказистыми. Но уже к 2006 году первая работа CG появилась в каталоге. Это был стул Bertil.



Мартин Энтед говорит, что никто не имеет ничего против фотоискусства. База 3D-моделей и рендеринг интерьеров нужны только потому, что это проще, дешевле и быстрее, чем составлять каждый интерьер по-настоящему. Например, сложнее всего составлять настоящие интерьеры кухонь: там сотни объектов, а для разных стран приходится делать разные обстановки, в соответствии с национальными традициями. Да и вообще, возможны сотни вариантов обстановки.




Найди десять отличий


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


Составить красивый интерьер на рендере — это целое искусство. Опытные фотографы в IKEA работали совместно с дизайнерами интерьеров и оттачивали своё мастерство 15-20 лет, чтобы добиться идеальной передачи впечатления и чувства, которое возникает при посещении комнаты с тщательно подобранной обстановкой. Все эти знания нужно было передать спецам по 3D-графике в компьютерном отделе, некоторые из которых только что закончили школу. Поначалу было непросто, сотрудничества не получалось.


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



Сейчас банк IKEA состоит 25 000 трёхмерных моделей с «нелепо высоким разрешением 4Kх4K», говорит Мартин Энтед (вероятно, он имеет в виду разрешение 2D-проекций). Повысить качество до такой степени пришлось в 2009 году, когда руководство вызвало компьютерщиков на ковёр и выразило возмущение низким качеством моделей. Теперь уже никто не может придраться.


Для оцифровки и рендеринга в IKEA используются 3DStudio Max и рендерер V-Ray. Другие компании тоже используют эту программу и даже с помощью WebGL позволяют редактировать трёхмерные сцены в браузере.


Мобильное приложение IKEA с дополненной реальностью


В последние годы представители IKEA стали завсегдатаями конференции по компьютерной графике Siggraph. Теперь понятно, что им действительно есть о чём рассказать.


Примеры компьютерной графики



This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Роспотребнадзор собирается регламентировать физические параметры электроники

image

По скудной и не особо подтвержденной информации, Роспотребнадзор собирается регламентировать требования к гаджетом. Основная идея: дети не выпускают из рук планшеты-телефоны-читалки, и к школе у них уже испорчено зрение. В предварительном списке регламентируемых параметров шрифт, яркость и частота мерцания экрана. При этом до сих пор действуют советские нормы на 30 минут компьютера в неделю и не раньше, чем в пять лет. Безусловно, законодательство не помешало бы обновить. Современные экраны явно менее вредны, чем Электроника МС6105 с разверткой 50 Гц. Но дальше продолжать не буду, все и так всё знают и понимают.



Когда я прочитал эту новость, сразу вспомнил телефон Son Ericsson T230. Был такой в начале 2000-х. Там был самый отвратительный экран который я когда либо видел, с углами обзора градусов по 20 и с явно видимой межпиксельной сеткой. От такого экрана действительно хочется защитить, но покупатель вполне может справится с этим самостоятельно. Возможности и адекватность реализации даже не буду обсуждать, каждый додумает в меру фантазии. Зато после введения норм можно будет обоснованно отвечать на аргумент «шрифты — органический отход»: «Роспотребнадзор одобрил, шрифты отличные!»


P.S. Пока искал иллюстрацию для поста, наткнулся на эту страницу: http://ift.tt/1zRKwxa. Кодировка отображается неправильно, при виде такого нахлынули не всегда теплые воспоминания об эпохе Web 1.0 Является ли это достаточной угрозой для здоровья, чтобы оградить пользователей от такого?


Источник: http://ift.tt/1Ca6OOB


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


пятница, 29 августа 2014 г.

Владелец поисковика Shodan пропинговал весь интернет и составил его карту

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

Недавно владелец Shodan Джон Мэзерли решил составить карту всех устройств, имеющих IPv4-адрес в Интернете. На то, чтобы пропинговать все доступные устройства с прямым выходом в интернет ушло чуть меньше пяти часов. Обработка данных и рендеринг карты заняли двенадцать часов.






Похожую карту интернета публиковали на сайте Internet Census 2012 в марте прошлого года, причём она содержала гораздо больше информации. Однако для её сбора использовался ботнет из почти полумиллиона компьютеров, и, кроме пинга, было проведено сканирование портов — провести подобное сканирование повторно довольно проблематично из-за его объёмов и очевидной нелегальности. Карта Джона Мэзерли составлялась без использования ботнета и с помощью исключительно ICMP-запросов ping, поэтому такие сканирования вполне можно проводить на регулярной основе, считает Мэзерли. Со временем по таким «отпечаткам» сети можно будет проследить динамику роста интернета в развивающихся странах, а так же развитие «интернета вещей».


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Беспилотный самолет на солнечных батареях Zephyr-7 продержался в воздухе 11 дней в зимних условиях


Речь идет именно о беспосадочном полете, совершенным самолетом Zephyr-7 в зимних условиях, в Южном полушарии (где именно тестировался аппарат, разработчики не сообщили). Правда, летел он на высоте более 21 километра, так что воздействие погодных условий на этот летательный аппарат было минимальным. Тем не менее, самолет в очередной раз показал собственную надежность в долгосрочных полетах без промежуточных посадок.


Zephyr-7 — довольно крупный летательный аппарат, размах крыльев составляет 23 метра, а масса с полезной нагрузкой составляет более 50 килограммов. Стоит отметить, что «солнечный самолет» именуется как высотный псевдоспутник (High Altitude Pseudo-Satellite, HAPS), именно в силу своих возможностей оставаться в паре десятков километров над поверхностью в течение многих дней.


Летательный аппарат Zephyr-7 впервые был оснащен системой спутниковой связи для того, чтобы назменые операторы могли контролировать местоположение беспилотника, после того как тот выходил за пределы видимости наземных наблюдателей. Испытания «солнечного» самолета привели к необходимости вовлечь несколько военных британских организаций, занимающихся контролем воздушного пространства и авиации, поэтому самолету был присвоен и военный регистрационный номер: PS001. По словам разработчиков, Zephyr-7 — первый псевдоспутник, который получил такой номер.


Кроме всего прочего, проект частично финансируется еще одной военной организацией: Министерством обороны Великобритании. Да и создан беспилотник, насколько можно судить, для военных. Во всяком случае, над проектом работала оборонная компания QinetiQ (также из Великобритании). Именно поэтому сейчас доступно не так много технических деталей о проекте. Зато такая информация есть в отношении предшественников «Зефира»,


В прошлом году компания Airbus выкупила проект у QinetiQ. Цель нынешнего проекта — демонстрация возможности псевдоспутников, которые позиционируются, как недорогой инструмент наблюдения и коммуникаций.


Для подзарядки аккумуляторов самолет использует солнечные панели, размещенные на крыльях, которые накапливают энергии достаточно, чтобы все системы работали и в ночных условиях. Ранее Zephyr-7 и его предшественники тестировались в более мягких условиях, в летнее время с длинным днем и короткой ночью (и более мягкими погодными условиями), так что нынешние испытания стали действительно серьезным испытанием для «солнечного» самолета.


Via defensenews


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Делаем из Хабра торт



Картинка для привлечения внимания

После очередной обновы хабрахабра, я решил — с меня хватит! И, используя чудный сервис web.archive.org, вытянул из хабрахабра версии июля 2012 все стили и картинки. В CSS внес некоторые изменения, как, например, флаги (из песочницы, перевод и т.д.). Потом яваскриптом вытянул информацию из меню слева и сформировал из нее шапку. Результат можно видеть на скриншоте выше.



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


Посмотреть на эти самые стили и юзерскрипт можно на репозитории на bitbucket.


Как мне это поставить себе?




Используя специальные плагины браузеров для поддержки юзерскриптов. Для Firefox это greasemonkey, а для Chrome — Tampermonkey. Для остальных браузеров также есть аналоги.

P. S. Буду рад сообщениям о багах сюда и в issues.


P. P. S. Пока еще не готовы уведомления от трекера и о новых сообщениях, и почему-то криво отображается форма создания поста.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Выход KolibriN9


сегодня в 15:47


Спустя полтора года разработки вышла новая версия сборки KolibriOS — KolibriN9!

KolibriN9 это не официальная сборка развиваемая Leency. В ней он развивает свое видение дизайна KolibriOS которое расходится с мнением основной команды разработчиков. Также отличием данной сборки от официальных ночных является поставка по умолчанию практически всех программ и игр написанных для KolibriOS.


Особенности выпуска:




Основные изменения, пришедшие из KolibriOS:





  1. Изменения в ядре и драйверах




    • Поддержка USB (OHCI/UHCI/EHCI) и USB hot-plug («горячее» подключение). Поддерживаются следующие USB-устройства: клавиатуры, мыши, флешки, хабы;

    • Поддержка ФС ext2/3/4 в режиме чтения и записи, и XFS в режиме только для чтения;

    • Подключение дополнительной директории /kolibrios/;

    • Улучшение распределения времени в планировщике процессов;

    • Добавлена нативная поддержка режима SATA IDE для жестких дисков и ATAPI-устройств;

    • Поддержка общесистемного буфера обмена;

    • Включение в систему драйвера vidintel, включающего поддержку нативных разрешений на ноутбуках со встроенной видеокартой Intel;

    • Обновление аудиодрайвера Intel HD Audio;

    • Обновление драйверов для видеокарт Intel и ATI Radeon;

    • Ускорение загрузки на некоторых конфигурациях;




  2. Обновление программ




    • Веб-браузер Netsurf;


    • Fplay: поддержка больших видеофайлов с большим битрейтом, пруф, поддержка вертикальной синхронизацией для видеокарт Intel (работает в связке с соответствующим видеодрайвером), добавлено управление клавиатурой: пробел — пауза, Enter — полноэкранный режим.

    • Dicty теперь умеет озвучивать русский перевод

    • Flat Assembler (FASM): обновление до стабильной версии 1.71.16.

    • Tinypad: поддержка общесистемного буфера обмена; множественные исправления и оптимизации

    • TextEdit: поддержка общесистемного буфера обмена; добавлено преобразование кодировок cp 1251->866 и cp 866->1251; исправление ошибок и мелкие доработки.

    • Shell: поддержка относительных путей в скриптах, перемещение курсора в консольной строке, начало внедрения поддержки общесистемного буфера обмена.

    • icon: новый рабочий стол, с поддержкой перетаскивания иконок, более удобное добавление иконок, возможность добавления своих пунктов в меню ПКМ путём правки ini.

    • Notify 3: Написан на FASM, поддерживает многострочность, поддержка ключей, поддержка иконок, возможность сделать окно незакрываемым (закрыть только по клику), возможность сделать первую строку заголовком (более жирный шрифт и белый цвет текста), если уведомление не влезает в экран, то оно становится в очередь и ждет, пока освободится место.


    • PCIDEV: добавлены подклассы устройств согласно изменениям в спецификации шины PCI за последние годы.

    • Board: уменьшение нагрузки на CPU при записи в файл; запуск только одной копии программы, при попытке повторного запуска становится активной уже запущенная.

    • rdsave: минимизация интерфейса и упрощение работы с программой

    • WebView: переход на httplib; обновленный дизайн; отображение процесса загрузки страницы через прогрессбар; отображение адреса в статусбаре при наведении курсора на ссылку; скин теперь не «вшит», а хранится в отдельном файле png; начальная страница со ссылками; улучшена поддержка тегов; оптимизация работы программы; история посещения и кэшированых изображений; запрос страниц на родном языке (русский и английский языки).

    • Eolite: рекурсивное удаление папок; контекстное меню; диалог «открыть с помощью»; копирование/вырезание файлов/папок между окнами Eolite; русский перевод; мелкие исправления и доработки.


    • fNav: добавлен индикатор процесса копирования, столбец расширения, множественное выделение элементов списка, устранены утечки памяти

    • Graphics Benchmark: добавлен тест блиттера и скорости чтения с экрана

    • Palitra: установка фона «черепицей», более удобное управление, определение цвета пикселя на экране (пипетка)

    • Улучшен GUI: RDSave, календаря, окна завершения работы, таймера, полностью переделан интерфейс программы настройки цветов окон, новые иконки




Изменения, специфичные для KolibriN9:




  • Переработано оформление системы, дизайн стал гораздо красивее и приятнее;


  • Повышено удобство работы, благодаря использованию панели Docky;

  • Мгновенный запуск KolibriN за счёт поддержки подключения дополнительной директории /kolibrios/;

  • appearance — программа для быстрой и удобной смены системного скина и обоев рабочего стола;

  • Game Center — игровой центр, написанный специально для KolibriN9, из которого возможно запустить игры, поставляемые в составе сборки;



Напомню, KolibriN9 это лишь сторонняя сборка KolibriOS и потому не является официальным дистрибутивом и ответственен за нее лишь автор сборки.






1544


6





Только зарегистрированные пользователи могут оставлять комментарии.

Войдите, пожалуйста.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


PowerToFly — поиск удаленной работы для женщин

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

За последнее время несколько раз поднималась тема о занятости прекрасного пола в IT-сфере. По просьбе моей знакомой хочу рассказать о стартапе PowerToFly.


imageПроект придуман женщинами (Milena Berry и Katharine Zalesky на фото слева) для женщин, при поддержке инвесторов они затеяли стартап, включающий что-то вроде соц.сети для женщин по всему миру и площадки для поиска удаленных сотрудниц.


Итак, PowerToFly решает 2 взаимосвязанные проблемы: с одной стороны, помогает компаниям, которые к ним обращаются, найти квалифицированных сотрудников по IT-направлениям на удаленную работу, а с другой — помогает трудоустроиться девушкам, которые по той или иной причине выбирают удаленную работу.



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


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


В данный момент времени проект находится в альфа-версии, работы еще предстоит много, но уже сейчас можно зарегистрироваться т.н. “Талантом”, заполнить свой профиль, в который внести свои умения и навыки. Функционал вакансий пока в работе, но клиенты могут регистрироваться и просматривать профили и при желании нанять подходящий талант. Сейчас PowerToFly сотрудничает с крупными компаниями, например VirginMobiles, Hearst, RebelMouse, WashingtonPost, MeeLocal, Avaaz и другие.


Хотя проект еще только в начале своего пути — уже есть реально трудоустроенные девушки, причем география обширна — от Австралии до Канады, но большинство девушек из России, Украины и Индии.


Необходимым условием для получения работы является знание английского (хотя бы на уровне Intermediate). PowerToFly помогает сотрудницам развиваться, «на борту» бесплатные курсы как профессионального так и разговорного английского.


PowerToFly


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Сделаем битторрент лучше

Последнее время среди пользователей файлообменных сетей все чаще звучат призывы к переходу в подпространство: анонимные сети типа i2p tor и т.п.

Несомненнно у этой идеи есть масса положительных сторон, однако, по сути это означает сломать устоявшиеся системы обмена трафиком, некоторые из которых формировались более 10 лет и начать строить заного, пусть с учетом старых ошибок, но и постаравшись не наделать новых. На даный момент сеть битторрент – это десятки, а наверное даже сотни миллионов устоявшихся связей “разорвав” которые крайне сложно будет восстановить все в полном обьеме.


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


1.


Первая причина за которую обычно критикуют битторрент – это его централизованность в виде трекера, который, как правило и является уязвимым местом для нападок копирастов, ДДоСеров и властей всех мастей. (извините за каламбур).


Сюда же можно приплюсовать наличие самого торрент-файла, который является инициатором раздачи, и который ответственные лица часто путают с самим содержимым раздачи, со всеми вытекающими отсюда последствиями.


Однако битторрент уже имеет решения этих проблем, которые эффективно работают. Это DHT и peer-exchange как заменители трекеров, и операции с хеш-суммами — как заменители торрент- и магнет- ссылок


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

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



  • Хеш – это не торрент и не магнет файл, его не надо скачивать и сохранять на диск, его гораздо проще опубликовать в открытом виде, он не является ссылкой, его очень сложно подогнать под определения — “технического средства, способствующего распространению данных” как это прописано в последнем законе РФ “о блокировках”.


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


С точки зрения вашего клиента – ему почти без разницы, торрент вы ему подсунули, или магнет-ссылку или хеш — сумму. “Почти” — в том случае если он обладает начальным облаком пиров, которое позволит ему опросить их на предмет наличия соответствующего хеш-сумме контента.


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


И главное:



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

    Броузеры могут (на самом деле – должны! ) научится распознавать хеш-суммы, подсвечивать их наподобие ссылок, открывая их по клику в битторрент клиенте.




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


Кроме того, хеш-суммы легко переводятся в QR-коды, (как вариант — штрих-коды) что открывает новые возможности для наружной и баннерной рекламы а также для оснащения каждого полицейского считывателем QR-кода подключенного к интернету.


Последнее в этом пункте – все вышенаписанное полностью совместимо с той технологией что мы имеем сейчас, и является ее расширением или, что вернее, логическим продолжением.


2.




Вторая беда файлообменных систем, да и вообще всего интернета – это проблема сохранности данных участвующих в файлообмене. Файлообменник может закрыть ФБР или Роскомнадзор, данные при этом безвозвратно изчезнут, с трекером может случится тоже самое, но данные при этом останутся, хотя и разрушатся облака раздач (развеятся, облака же!), а их восстановление если и произойдет, то с большими потерями.

Есть еще один способ борьбы с файлообменом: как следует напугать пользователей. Тогда они как зомби стирают все со своих дисков и делают телевизор погромче.


Но все же главная причина потери информации в пиринговых сетях – сами пользователи… Они попросту уходят с раздач, и раздачи таким “умирают” (либо удаляются с файлообменников за ненужностью). Если вы скачали торрент, а на раздаче нет сидеров, максимум сколько вы прождете – месяц, иногда два. Потом вы прекратите ждать, значит раздача умерла, и виноват здесь только человеческий фактор: один из последних сидеров пролил на ноутбук кофе, другой утопил переносной диск в унитазе. А третий женился, и фильмы Ларса Фон Триера его больше не интересуют.


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



  • Мы можем прийти к ситуации, когда любая информация выложенная в p2p-сеть, останется в ней навсегда. Возможно она будет иметь ограниченную доступность в виде малого количества источников, ввиду малой востребованности, тем не менее она будет доступна и удалить ее из сети не будет никакой возможности…


( Здесь я сознательно опущу дисскуссию об иных последствиях “неудаляемости” информации, поскольку совершенно очевидно что есть контент, который не должен распространятся по сети даже с точки зрения The PirateBay. )


Как не странно, реализовать этот механизм это не так уж и сложно.

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


Не составляя единого целого, такие блоки данных не будут иметь никакой прикладной ценности для того компьютера на котором они кешируются.


Кешируемая раздача никогда не будет скачана целиком на этом комьютере и пользователь никогда не узнает что кешировал его компьютер.


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


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


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


Побочным эффектом сего нововведения будет и дополнительная защита релизеров – сделав раздачу можно будет дождатся пока она разойдется по облаку пиров, перед тем как публиковать хеш–сумму в людном месте. Установить первоисточник релиза после этого практически нереально. (последователи Ассанжа и Сноудена наверняка оценят).


Эту надстройку также несложно сделать обратно совместимой с существующей технологией, как дополнительную фукцию в любом битторрент клиенте ( впоследcтвии, желательно, не отключаемую:)


3.


Если мы хотим децентрализовать и таким образом защитить сеть – нам нужно от трекеров переходить к сетям DHT и Peer-Exchange как основному способу обмена пирами среди битторрент-клиентов, используя трекеры только для инициализации раздач, а возможно и просто для выдачи начального списка пиров DHT сети, безотносительно конкретной раздачи.


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


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


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


Здесь речь идет не только о приватных ключах в торрентах, но и правил по “перепаковке” релизов для конкретного трекера (с праздником тщеславия в виде своего файла *.nfo в раздаче), из за которого меняется хеш раздачи, и в результате появляется клон по содержанию но с отличной хеш-суммой, который “не совместим” по пирам со источником.


Вашему битторрент клиенту ничуть не приятнее качать с IP адресов зарегистрированных на вашем трекере, чем с любых других, полученных по DHT. Ему абсолютно все равно! Дайте свободу в интернете хотя бы роботам!


Если немного обобщить, то наверное следует говорить о введении эдакого кодекса пиратской чести для трекеров, свода стандартных правил, среди которых будет запрет приватных торрентов и ключей, запрет на “запрет DHT” в торрент-файлах, запрет на “перепаковку" релизов под нужды или правила конкретного трекера или релиз группы.



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




В качестве заключения хочу заметить что несмотря на громкие заявления, пока не существует технологий для фильтрации битторрент трафика. Некоторые провайдеры, используя DPI умеют только ограничивать скорость или запрещать его целиком.


В отличии от системы по блокировке сайтов по URL где фильтрация уже идет полным ходом.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


[Из песочницы] Эволюция банкоматных скиммеров


Мы все привыкли к словосочетанию «технический прогресс». Уже довольно много лет назад смена поколений всевозможных устройств и гаджетов стала таким же привычным явлением, как смена времён года. И никого не удивляет, по большей части. Мы привыкли, к метаморфозам мобильных телефонов, домашних телевизоров, компьютерных мониторов, теперь вот подтянулись часы и даже очки. Однако есть некий немногочисленный класс устройств, о которых многие слышали, их опасаются, но в живую видели единицы. Речь идёт о скиммерах.


В России банкоматы до сих пор не столь распространены, несмотря на 23 года официального капитализма. Но даже у нас скиммеры стали некой городской страшилкой. И мало кто задумывается, что эти устройства, использующие высокотехнологичные компоненты, тоже со временем эволюционируют. И потому особый интерес представляет недавно опубликованный материал, в котором наглядно представлены этапы «модернизации» скиммеров, вплоть до современных новейших разработок криминальных умельцев.



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


Скиммеры изготавливаются так, чтобы быть как можно незаметнее для пользователей банкомата. Зачастую они мимикрируют под какой-то элемент интерфейса или внешнего оформления. Это сильно затрудняет не только обнаружение скиммеров, но и поимку самих злоумышленников. И за последние 12 лет скиммеры претерпели серьёзные метаморфозы. По крайне мере, если судить по тем образцам, которые были обнаружены за этот период.


2002-2007




В декабре 2002 года CBS сообщила об обнаружении невиданного ранее устройства, которое могло «записывать имена, номера счетов и прочую идентификационную информацию с магнитных полос банковских карт, с возможностью последующей загрузки в компьютер.» Персональный компьютер!

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


Конечно, полное игнорирование фактов долго не продлилось. В 2003 году покупатели, пользовавшиеся банкоматом в одном нью-йоркском гастрономе, потеряли за день суммарно около 200 000$. В последствии в сети начало ходить предупреждающее письмо:



2008




В этом году в полицию города Нейплс (Naples) поступил звонок о неудачной попытке размещения скиммера:


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


2009




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


Этот скиммер обнаружил один из читателей сайта Consumerist. Бдительный пользователь заподозрил неладное, дёрнул картоприёмник и к нему в руки вывалилось это.


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



В то время для мошенников ключом к успешному скиммингу было найти способ получения украденной информации со скиммера:



Ранние модели скиммеров иногда заставляли банкоматы работать некорректно. Но вскоре злоумышленники научились успешно паразитировать на них.



2010




Многие годы в скиммерах использовались камеры для кражи PIN-кодов. Но их было не так просто незаметно разместить на банкомате. В результате появились накладные клавиатуры, которые записывали последовательность нажимаемых клавиш:


С развитием технологий, мошенникам становилось всё легче создавать компактные устройства. Развились и подешевели услуги аутсорсингового производства. В интернете начали продавать целые наборы для скимминга, которые могли быть по запросу покрашены в нужные цвета. Цены начинались от 1500$.



Но это лишь набор начального уровня. Топовые устройства уходили за 7000-8000$:



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


Ниже представлен скиммер с функцией беспроводной связи, способный передавать информацию через сотовый модуль. Сам скиммер очень компактен, собранные данные передаёт в зашифрованном виде.





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


2011




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


Как видите, заметить подставу можно лишь по небольшой малозаметной пластиковой накладке. Многие ли из вас обратили бы на неё внимание? А вскоре доступная 3D-печать вывела качество скиммеров на новый уровень:



Домашние модели 3D-принтеров были ещё малопригодны для этих целей, и детали заказывались на стороне в специализированных компаниях. Выше приведён один из таких заказов, которые производитель осмотрительно отказался выполнять.


2012




Обнаружение скиммеров становилось всё более сложной задачей. Ниже показано почти совершенное устройство. Единственный недостаток заключается в маленьком отверстии справа, через которое маленькая камера снимала набираемые на клавиатуре PIN-код.



В конце концов скиммеры стали такими миниатюрными, что вы их не увидите, даже если очень постараетесь. По данным Европейской группы по обеспечению безопасности банкоматов (European ATM Security Team), в июле 2012 были обнаружены скиммеры толщиной с лист тонкого картона. Они помещались внутрь картоприёмника, и заметить их снаружи невозможно.



Теперь ваши карты могут просканировать не только в банкоматах, но и в мобильных терминалах. В ролике показано устройство, даже печатающее фальшивый чек:



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


2013




В прошлом году на сети заправок Murphy в Оклахоме был зафиксирован ряд случаев скимминга, когда суммарно было похищено 400 000$. мошенники использовали считыватели в комбинации с накладными клавиатурами:


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


Пока одна «эволюционная ветвь» скиммеров пришла к миниатюризации, другая пошла по пути радикальной мимикрии. Нижеприведённый скиммер представляет собой огромную накладную панель с дисплеем. В «дикой природе» этот образец был обнаружен в Бразилии:




Устройство было изготовлено из деталей разобранного ноутбука.


2014




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



Устройство требует очень мало времени на установку и демонтаж в банкомат:



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


А что делать нам, обычным пользователям? Как не стать жертвой мошенников и сохранить свои кровные? Всегда. всегда прикрывайте клавиатуру во время набора PIN-кода: в большинстве случаев мошенники используют миниатюрные камеры. А если вы используете карту системы Chip-and-pin, то злоумышленникам не так просто считать с неё данные.


И самое главное, если вас хоть что-то настораживает в облике банкомата, лучше воспользуйтесь другим. Старайтесь использовать банкоматы только в отделениях банков, это существенно снижает риск. Ну, и старайтесь не хранить много денег на «карточном» счёте.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.