1С по прежнему стремится в облака и скупает конкурентов

Инвестиционный фонд Ambient Sound Investments (ASI) продал принадлежащую ему долю в российской компании «Логнекс» фирме «1С». Компания «Логнекс» разрабатывает облачный сервис по автоматизации торговли «МойСклад», который был запущен в 2008 г. Функционал программы «МойСклад» позволяет вести учет и обработку заказов клиентов, вести учет движения денежных средств и осуществлять контроль взаиморасчетов, управлять сетью подразделений, торговых точек или дистрибьюторов, а также печатать все необходимые документы и аналитические отчеты. Программа «МойСклад» задумывался как недорогой массовый продукт, способный потеснить «1С». И теперь он фактически принадлежит конкуренту.

Исаак Левитан картина в 3D

Вчера я с семьей посетил Третьяковскую галерею. Под конец осмотра сел в изнеможении перед картиной Исаака Левитана «У омута». Рядом сел мой ребенок в таком же изнеможении. Глядя на нас тетя-хранительница предложила ребенку немного развлечься, походить мимо картины и посмотреть на мостик из бревен. При этом выяснился потрясающий эффект, направление мостика изменяется в зависимости от точки осмотра. Мостик всегда ведет от смотрящего на другой берег. Если встать прямо перед картиной, то мостик кажется прямым. Если встать правее или левее, то мостик становится диагональным под соответствующим углом.

Исаак Левитан. У омута.
Исаак Левитан. У омута.

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

Если кто нибудь знает как это получается, добро пожаловать с объяснением в комментарии.

В светлое Unicode будущие с Delphi XE

В прошлом месяце я стал счастливым обладателем лицензионной Delphi XE и вместе с ней был вынужден сделать шаг к Юникоду. Конечно переход на Юникод в Delphi продолжается уже несколько лет, но от этого он не стал менее болезненным. С такими вещами, как явное указание типов строк ShortString и AnsiString все более или менее понятно. Эти моменты разжевывались Embarcodero давно и подробно. Основная головная боль была с самодельным компонентом. Когда-то я придумал, что метод компонента будет возвращать значение, через изменяемый параметр функции, типа ShortString. Вот тут то я и попал, оказалось, что подобный параметр возвращает все, что угодно, кроме нужного результата. Выход конечно нашелся, но пришлось переделывать компонент, так что бы он возвращал результат в виде результата функции. Как не странно заработало, но три дня как не бывало.

Второй момент который меня существенно удивил, было отсутствие прямого и корректного преобразования переменной типа Char в переменную типа AnsiChar. Когда любой компонент из VCL возвращает нажатие клавиши, это буква помещается в Char, который по умолчанию (причем которое невозможно изменить) является символом Юникода. Мне же нужен был обычный символ в интервале от 0 до 255. Простое приведение

KeyA:=AnsiChar(Key)

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

var
  StA : AnsiString ;
  KeyA : AnsiChar ;
begin
  StA:=Key ;        // присваиваем Unicode символ строке AnsiString,
                    // при этом компилятор добавляет преобразование
                    // типа строки
  KeyA:=StA[1] ;    // берем 1-й символ получившейся строки
end ;