Архив за 17 января 2013 - 4

Обещанного ждут не три года, а всего несколько месяцев. В нашем прошлом посте мы обещали рассказать про вывод из App Store и, вот, рассказываем.

Многие владельцы карт Payoneer зарабатывают на жизнь нелегким трудом разработчика приложений. А перед каждым разработчиком (или компанией оных) рано или поздно встает вопрос вывода заработанных средств. Услуга US Payment Service компании Payoneer позволяет получать выплаты от Apple, PayPal и Google и многих других прямо на вашу карту Payoneer MasterCard®. Читать полностью »

Поиск@Mail.ru научился находить людей по профилям в соцсетях «Мой Мир», «Вконтакте», «Мой Круг» и «Одноклассники». По запросу, состоящему из имени и фамилии человека, Mail.ru показывает блок «Люди» с общей информацией о найденном человеке, которую он сам указал на своей страничке (фото, город, возраст, учебное заведение).

Mail.ru, как и "Яндекс", научился искать людей

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

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

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

Компания Genius объявила о начале продаж манипулятора Gila, который сам производитель относит к числу «профессиональных игровых мышей». Ключевым достоинством мыши Genius Gila, пополнившей серию GX Gaming, можно считать возможность адаптации к требованиям пользователя. Доступно переключение разрешения «на лету», настройка массы, изменение режима работы, яркости и цвета подсветки. Мышь оснащена 12 программируемыми кнопками и поддерживает макрокоманды.

Мышь Genius Gila оснащена 12 кнопками и стоит $100

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

Как уже отмечалось ранее, ETERNUS DX – это действительно единая продуктовая линейка, поэтому, как правило, и новые версии микрокодов появляются тоже одновременно для всех моделей линейки. Посмотрим, что нового появилось в последнее время для систем ETERNUS DX80/90/410/440/8700 S2. Для всех этих систем апдейт на последнюю версию микрокода добавляет следующие «фичи».Читать полностью »

С каждым днем слово java все больше и больше воспринимается уже не как язык, а как платформа благодаря небезызвестному invokeDynamic. Именно поэтому сегодня я бы хотел поговорить про виртуальную java машину, а именно — об так называемых Performance опциях в Oracle HotSpot JVM. Потому что сегодня почти не встретить людей, которые знают что-то больше чем -Xmx, -Xms и -Xss. В свое время, когда я начал углубляться в тему, то обнаружил огромное количество интересной информации, которой и хочу поделится. Отправной точкой, понятное дело, послужила официальная документация от Oracle. А дальше — гугл, эксперименты и общение:

-XX:+DoEscapeAnalysis

Начну, пожалуй, с самой интересной опции — DoEscapeAnalysis. Как многие из Вас знают, примитивы и ссылки на объекты создаются не в куче, а выделяются на стеке потока (256КБ по умолчанию для Hotspot). Вполне очевидно, что язык java не позволяет создавать объекты на стеке на прямую. Но это вполне себе может проделывать Ваша JVM 1.6 начиная с 14 апдейта.

Про то, как работает сам алгоритм можно прочитать тут (PDF). Если коротко, то:

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

Для реализации данного алгоритма строится и используется так называемый — граф связей (connection graph), по которому на этапе анализа (алгоритмов анализа — несколько) осуществляется проход для нахождения пересечений с другими потоками и методами.
Таким образом после прохода графа связей для любого объекта возможно одно из следующих следующих состояний:

  • GlobalEscape — объект доступен из других потоков и из других методов, например статическое поле.
  • ArgEscape — объект был передан как аргумент или на него есть ссылка из объекта аргумента, но сам он не выходит из области видимости потока в котором был создан.
  • NoEscape — объект не покидает область видимости метода и его создание может быть вынесено на стек.

Если объект NoEscape, то он может быть создан на стеке. Если объект NoEscape или ArgEscape, то операции синхронизации над ним могут быть удалены.

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

    for (int i = 0; i < 1000*1000*1000; i++) {
        Foo foo = new Foo();
    }

скорость выполнения может увеличится в 8-15 раз. Хотя, на казалось бы, очевидных случаях из практики о которых недавно писалось (тут и тут) EscapeAnalys не работает. Подозреваю, что это связано с размером стека.

Кстати, EscapeAnalysis как раз частично ответственен за известный спор про StringBuilder и StringBuffer. То есть, если Вы вдруг в методе использовали StringBuffer вместо StringBuilder, то EscapeAnalysis (в случае срабатывания) устранит блокировки для StringBuilder'а, после чего StringBuilder вполне превращается в StringBuilder.
Читать полностью »

День добрый!

На прошлой неделе прошла международная выставка потребительской электроники CES 2013 — едва ли не самое громкое событие в году для всех компаний, так или иначе связанных с производством, сборкой и разработкой технологий и ПО для потребительской электроники во всех ее проявлениях: от банальной бытовой техники до горячих инноваций вроде гибких OLED-дисплеев и новейших процессоров для мобильных устройств. Ниже мы собрали все самые интересные новинки, которые Samsung представила за четыре дня выставки, с 8 по 11 января. Некоторые продукты уже выходят в продажу, другим еще только предстоит найти свое место на отечественном рынке. Так или иначе, под катом вас ждет много интересного.

Итоги CES: новые продукты Samsung на международной выставке потребительской электроники
Читать полностью »

Три способа вставки картинок в тело письма в Яндекс.Почте

Не так давно мы подробно рассказывали новые аттачи в Яндекс.Почте. В декабре в у нас появился новый просмоторщик картинок. Работать с изображениями в Почте благодаря этим нововведениям стало действительно проще и удобнее.

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

Мы долго думали над этой проблемой. Можно было использовать java-апплет или flash, но у этих решений были существенные ограничения. Например, при использовании java-апплета нужно будет обязательно разрешать выполнение апплета в браузере. В итоге мы решили использовать новые возможности современных браузеров, такие как Clipboard API, File API и Drag n Drop.

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

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

в 10:23, , рубрики: .net, string

image
От переводчика: Джон Скит написал несколько статей о строках, и данная статья является первой, которую я решил перевести. Дальше планирую перевести статью о конкатенации строк, а потом — о Юникоде в .NET.

Тип System.StringC# имеющий алиас string) является одним из наиболее часто используемых и важных типов в .NET, и вместе с тем одним из самых недопонимаемых. Эта статья описывает основы данного типа и развенчивает сложившиеся вокруг него мифы и непонимания.
Читать полностью »

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


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