Метка «java» - 53

Для написания программ, выполняющих параллельные вычисления, широко применяются потоки (threads). При том, что потоки позволяют достаточно гибко организовывать парраллелизм в программах, они обладают рядом недостатков.Дело в том, что потоки разделяют между собой память. Это значит, что очень легко по неосторожности нарушить целостность программы. Побороть это можно с помощью блокировок, которые позволяют некоторому коду получать эксклюзивный доступ к обшему ресурсу. Однако, сами блокировки, помимо того, что их нужно не забывать проставлять, порождают в свою очередь проблемы. Одна из самых страшных проблем — это возможность породить deadlock. Впрочем, даже без этого написание действительно хорошо работающей многопоточной программы превращается в ювелирный труд.

Но у потоков есть альтернативы. Из известных мне — модель акторов (actors) и software transaction memory. Героем этой статьи, как понятно из заголовка, являются первые. Впрочем, по STM есть достаточно много статей в интернете, которые удовлетворят ваше любопытство.

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

Привет.

Приглашаем вас зарегистрироваться на бесплатный вебинар "Revenue Models and Developer Monetisation Tools", на котором мы расскажем о монетизации бесплатных и freemium-приложений и игр для телефонов Nokia Series 40. Вебинар будет проводиться завтра в полдень (МСК) на русском языке. Регистрация обязательна.

Первая часть вебинара будет посвящена использованию In-App Purchase API for Java, позволяющего пользователям совершать быструю покупку дополнительного контента (или разблокировку недоступной в базовой версии функциональности) в играх и приложениях.

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

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

ЭЦП в браузере: проблемы, решения, личный опыт

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

На самом деле сегодня ситуация с ЭЦП в браузере все же не так печальна как еще несколько лет назад, но она все же далека от идеала. Тема эта также несколько раз поднималась на хабре, например, здесь и здесь.

Под катом рассказ о самой проблеме, о том, как эту проблему можно решить, о том, как я ее решал, а также личные впечатления о том, как обстоят дела с ЭЦП в Беларуси.
Читать полностью »

Позавчера, когда нечего было делать, пришла в голову мысль о том, как можно интересно организовывать ивенты на серверах minecraft. Веселые «крысиные» бега это очень интересно и даже местами забавно, но больше интересно это для админов, наблюдать с высоты как копошатся внизу игроки и кидать им хлеб и мясо. Во время подобных ивентов ЧСВ организаторов поднимается до over 9000. Я, лично, подобные мероприятия недолюбливаю (странно, да?).

В чем же заключается моя «супермегаидея»? А в том, что бы организовать те же бега, но более организовано, с хитрыми головоломками. Самих головоломок я, естественно, еще не придумал, но вот способ выдачи подсказок меня и занял. Суть в том, что бы передавая особый сигнал от клиента к серверу заставлять клиент открыть ссылку в броузере по-умолчанию. Задание не архисложное, но за минуту я до него не дошел. Была безумная идея менять что либо в обмене данными сервер-клиент. Но потом, пришла в голову более простая, но, как мне кажется, более красивая идея.
Читать полностью »

Как собрать свою JDK, без блекджека и автоматической сборки мусораНа недавно прошедшей Java One Руслан cheremin рассказывал о том, что разработчики Disruptor используют JVM без сборщика мусора. У них на то были свои причины, которые не имеют к этому топику никакого отношения.

Я же давно хотел поковыряться в исходниках виртуальной машины, и выпиливание из неё GC – отличное начало. Под катом я расскажу вам, как собрать OpenJDK, выпилить из неё сборщик мусора и снова собрать. Ближе к концу даже будет дан ответ на наверняка пришедший вам в голову вопрос «зачем».

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

Здравствуйте! С вами очередной (а для большинства из вас первый) выпуск подборки новостей на тему высоких технологий за авторством блогера Vinndimon с сайта Gamersweb.ru. Новые выпуски данной подборки выходят каждый четверг, и содержат в кратком формате самые приглянувшиеся автору новости IT-индустрии за прошедшую неделю. Стоит упомянуть, что данный дайджест рассчитан на широкую аудиторию, автор старался рассказывать о событиях максимально простым, обывательским языком.Ну что, не будем растягивать вступление до неприличных величин и просто начнём?Читать полностью »

Многие знают, что назревающий возможный скандал между крупными игроками IT-рынка Google и Oracle, подспудной причиной которого стала популярная платформа Android, вылился в суд между корпорациями, который начался в понедельник 16 апреля. Суть претензий Oracle заключается в том, что компания, купив в 2009 году Sun Microsystems, приобрела авторские права на язык программирования Java и теперь интернет-гигант незаконно использует технологии Java в Android, нарушая, таким образом, патенты Oracle.

Не вдаваясь в подробности, собственно юридических вопросов патентного права, кажется любопытным проследить логику адвокатов Oracle в намерении доказать, что Google отнюдь не начинала с чистого листа в Android, а исходный код системы, как минимум, содержит прямые вставки непосредственно из исходного кода Java. Всего, если отметить ради интереса, Oracle обвиняет Google в копировании 103 400 строк Java-кода (подробное описание иска можно посмотреть в этом pdf-документе)

Итак, после первичного заявления адвокатов Oracle о сознательном отказе от патентных отчислений в пользу законного владельца технологий, рассмотрение вопроса стало более конкретным. В суд был приглашен Джошуа Блох, работающий в данный момент в Google и должность которого в корпорации обозначена как Chief Java Architect at Google (при этом не лишним будет отметить то обстоятельство, что Блох восемь лет проработал в Sun, перед тем как перейти на работу в интернет-гиганте).
Читать полностью »

JavaOne Уставшие, но довольные члены команды JetBrains вернулись сегодня с одного из знаковых событий для всего Java-сообщества — конференции JavaOne Russia 2012 в Москве.

В течение двух дней наши ведущие разработчики общались с посетителями конференции на стенде компании и отвечали на многочисленные вопросы не только о «флагманском» продукте JetBrains — одной из лучших сред для разработки на Java — IntelliJ IDEA, но и о новом, объектно-ориентированном языке со статичной типизацией Kotlin, который предназначен для разработки на платформе Java.

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

Размеры объектов в Java уже обсуждались на Хабре, например, здесь или здесь. Мне бы хотелось подробнее остановиться на размерах многомерных массивов — простая вещь, которая для меня стала неожиданной.

Оптимизируя вычислительный алгоритм по памяти, я наткнулся на то, что при определённых (вполне разумных) входных параметрах создаётся массив float[500][14761][2]. Сколько он может занимать в памяти (на HotSpot 1.6.0_26 32bit, если кому интересно)? Я примерно прикинул, что 500*14 761*2*sizeof(float) = 500*14 761*2*4 = 59 044 000 байт плюс какой-то оверхед. Решив проверить, как на самом деле, я воспользовался Eclipse Memory Analyzer (невероятно волшебная вещь, рекомендую!) и обнаружил, что «Retained Heap» для этого массива составляет 206 662 016 байт! Неплохой оверхед — 350%. Посмотрим, почему так получилось.
Читать полностью »


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