Архив за 24 ноября 2014 - 8

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

Очень интересной показалась программа CryptSync — простая и самодостаточная. Программа синхронизирует 2 каталога, шифруюя при этом файлы при помощи 7-zip или GnuPG. Единственная поддерживаемая платформа — Windows.

Недостаток, упомянутый автором статьи выше — хранение 2-х экземпляров файлов — мне не кажется уж очень существенным, к тому же с включенной опцией «Mirror original folder to encrypted folder» можно спокойно стирать файлы оригиналов в папке источника после синхронизации и хранить только зашифрованные копии, а когда нужно выключить данную опцию, соответственно расшифрованные файлы появятся опять в папке-источнике.

С некоторых пор мне расхотелось использовать AES, крипто-алгоритм официально сертифицированный и стандартизированный АНБ США в любой реализации, хотя бы потому, что это самый атакуемый шифр, в силу его повсеместного распространения. Да и безальтернативность как-то уже мозолит глаза.

Поэтому, узнав, что программа поддерживает синхронизацию с помощью GnuPG, был приятно удивлен. В 7-zip для шифрования используется только AES-256, тогда как в GnuPG выбор достаточно богатый.
Читать полностью »

Компания Tesoro Technology, выпускающая игровые периферийные устройства для ПК, рассказала, что она планирует показать на мероприятии DreamHack 2014, которое пройдет с 27 по 30. По замыслу производителя, в экспозицию войдут новые механические клавиатуры, наушники объемного звучания, мыши, коврики и другие изделия.

В частности, посетители выставки смогут увидеть и попробовать в деле представленную в начале месяца клавиатуру Tesoro Excalibur RGB с настраиваемой подсветкойЧитать полностью »

РАЭК и ФРИИ учредили Институт развития интернета, говорится в релизе организаций. Основная задача ИРИ - со всех сторон обсчитывать и анализировать рынок интернета и связанных с ним отраслей.

Уже существующий РАЭК тоже каждый год собирает цифры по Рунету - но это только интернет-рынок в чистом виде. Кроме того - аналитика не приоритетная задача для ассоциации, говорит ее представитель Екатерина Воробьева. Для РАЭК на первом месте - объединение отрасли и лоббирование интересов интернет-бизнеса.

Читать полностью »

Когда я только начинал изучать Python, большое впечатление на меня произвели route-декораторы в известном фреймворке flask. Конечно, я догадывался, как они могли быть реализованы, но как всегда желание писать (а не читать) превзошло необходимость взглянуть на исходный код flask, и мне пришлось выдумать то, что могло бы выглядеть так же лапидарно, как вышеупомянутые декораторы из flask'а. Упражнение на тему замыканий, декораторов и области видимости в Python могло бы выглядеть так:

def do_something(p):
    return p

@implements(do_something, lambda: not p % 2)
def do_mod2_something(p):
    return p / 2

@implements(do_something, lambda: not p % 3)
def do_mod3_something(p):
    return p / 3

do_something(10)  # returns 5
do_something(9)   # returns 3
do_something(11)  # returns 11

Как реализовать декоратор @implements? Может ли подобная реализация использоваться где-то в реальных проектах — вопрос, который мы редко принимаем во внимание, выдумывая себе упражнения для понимания того, как работают те или иные программы. Мне показалось, что это выглядит как некое замещение (override) функций, имеющих место в других языках программирования.
Читать полностью »

Описание проблемы

Пусть у нас есть некоторый класс X, параметризующийся из контейнера свойств PX и есть класс Y, расширяющий X, параметризующийся контейнером PY, расширяющим PX.

Если контейнерами свойств выступают аннотации, то мы имеем два класса:

@PX(propertyX1 = <valueX1>, ..., propertyXN = <valueXN>)
class X {
...
}

И есть класс:

@PY(propertyY1 = <valueY1>, ..., propertyYN = <valueYN>)
class Y extends X {
...
}

Java (в том числе и Java 8) не предоставляют возможность наследования аннотаций, поэтому написать что-то вроде примера ниже нельзя:

public @interface PX extends PY {
}

Разумеется, это не проблема, вот решение:

@PX
class X {

  protected final ... propertyX1;
  ...
  protected final ... propertyY1;

  X() {
    final PX px = getClass().getAnnotation(PX.class);
    propertyX1 = px.propertyX1();
    ...
    propertyXN = px.propertyXN();
  }
}

@PY
class Y extends X {

   Y() {
      final PY py = getClass().getAnnotation(PY.class);
      propertyY1 = px.propertyY1();
      ...
      propertyYN = px.propertyYN();
   }
}

В чем здесь недостаток? Недостаток в том, что мы обрекаем себя на то, что если у класса не будет аннотаций, то он будет сконфигурирован дефолтными значениями (аннотации PX и PY должны быть @Inherited для этого).

Как быть, если нам, к примеру, надо инжектировать проперти из файла .properties или взять их из какого-либо другого источника, например из спрингового Environment?

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

«Быстрее, выше, сильнее!», – теперь каждый, кто обут в Bionic Boots может поставить олимпийский рекорд по бегу. И даже оспорить первенство с такими профессиональными атлетами, как Усэйн Болт.

Bionic Boots – это высокотехнологичная обувь, которая может позволить человеку без значительных усилий достичь скорости 25 миль в час (40 км/ч). Эта скорость характерна для медленного движение автомобиля. Для сравнения: Усэйн Болт, самый быстрый человек в мире, поставил рекорд 27,44 миль в час (44 км/ч), в то время как средняя его скорость составляет 37,58 км/ч.

image

Bionic Boots — детище изобретателя из Сан-Франциско Кэхи Сеймура. На недавнем мероприятии Maker Faire, которое прошло в Нью-Йорке, он продемонстрировал возможности своей последней версии Bionic Boots.

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

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

Прибыль мобильного подразделения Samsung падает. Кто теперь будет конкурировать с Apple? Samsung — фактически единственная надежда анти-яблочного комьюнити — компания, которая могла реально конкурировать с Apple по продажам мобильных устройств. И с каждым кварталом ситуация становится все хуже и хуже. Это проблема? На первый взгляд, да. Потому что ослабление конкуренции всегда ведет к стагнации, и от этого в итоге проигрывают все участники рынка. На второй взгляд — не очень. Сейчас я постараюсь доказать, что Samsung и Apple никогда не были конкурентами.


Читать полностью »

Инженеры разработали умную сковороду Pantelligent, которая является самым настоящим помощником по кухне.

Визуально 12-дюймовое устройство с антипригарным покрытием ничем не отличается от обычной сковороды, но это и не удивительно, ведь вся суть скрыта «внутри».

Pantelligent   умная сковорода, которая даст советы по приготовлению вкусно еды

Читать полностью »

Мне давно хотелось написать свою статью о технологии iKnow. Прошло уже три года с момента её появления, но публикаций о применениях этой технологии в русскоязычных решениях до сих пор не было. Объяснение этому довольно простое – не было полноценной поддержки русского языка. Но с каждым новым релизом, начиная с Cache 2013.1, ситуация менялась в лучшую сторону. И вот, наконец, мы решили реализовать первый проект на iKnow. О том, как это было, что получилось, а что нет, читайте далее в моей статье.
Читать полностью »

image

Горячие клавиши (или shortcuts) позволяют ускорить работу с любым продуктом — можно вспомнить известную всем комбинацию клавиш Ctrl+C/Ctrl+V, используемую для копирования и вставки. Приложения для общения не являются исключением — например, в Gmail присутствуют десятки шорткатов. Проблема с этими клавиатурными сокращениями заключается в том, что многие из них могут не работать на различных устройствах или операционных системах.

Для того, чтобы избежать таких проблем, разработчикам приходится прибегать к нестандартным решениям. Сегодня мы расскажем о том, как внедряли в сервис Kato клавиатурные сокращения, соответствующие идеологии Unix-редактора Vim.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js