Метка «java» - 39

Возникла необходимость в решении такой задачи: как обмениваться данными между разными интерпретаторами Python?! Отыскал несколько решений, но хочу рассказать об одном, на мой взгляд, самом удобном.
Читать полностью »

Рады сообщить, что платформа Jelastic становится «полиглотом» — в четвертом квартале 2012 года планируется запуск PHP облака. Уникальная фишка этого сервиса — это вертикальное масштабирование: больше не нужно переплачивать за большие сервера или страдать от нехватки ресурсов. Благодаря данной фиче с увеличением нагрузки, приложение автоматически получает необходимые ресурсы, с уменьшением соответственно — наоборот. Это действительно новый подход к облачному хостингу: платформа очень проста и удобна в использовании, так что даже новички смогут легко развернуть свои приложения, вместе с тем поддерживаемый функционал очень широк, так что платформа придётся по вкусу даже самым продвинутым PHP разработчикам.

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

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

После поста о подходе Apple к кодированию видео в JPEG, решил рассказать о своем подобном «велосипеде» под Android.
В своем мобильном проекте решили мы сделать превьюшки оружия не статической картинкой, а видео. Подразумевалось, что художники нарисуют красивые анимации, может даже в 3д, но что-то не сложилось и нам выдали простейшие зацикленные 1-1.5 секундные ролики в разрешении 256х256. В iOS версию они встроились замечательно, а вот в Android пришлось повоевать с MediaPlayer и SurfaceView, но все-равно получились некоторые «корявости» — содержимое SurfaceView не перемещалось вслед за родительским View, была заметная пауза при воспроизведении, и пр.
Разумным решением было бы разбить анимации на кадры и оформить в xml для AnimationDrawable, но для 15 видов оружия это значило бы мусорку из 5000+ кадров по 10-15 кб каждый. Потому была сделана своя реализация AnimationDrawable, работающая с sprite sheet и относительно быстрый метод конверсии видео в такой формат.

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

Месяц назад несколько раз на Хабре проскакивали статьи о замечательном ресурсе Coursera, где можно пройти курсы обучения по различным направлениям. Среди прочего меня очень заинтересовал курс «Алгоритмы» (часть 1), на который я подписался и начал его изучать. Сейчас курс приближается к завершению, а я решил написать небольшой отчет по первой части курса (надеюсь меня хватить и на описание второй части курса по его завершению), чтобы уважаемый %username% мог определить стоит ли записываться на следующую итерацию курса или нет.
Читать полностью »

Здравствуйте.

Open Source проект для обучения, часть 1: overview

Я являюсь одним из основателей JMaNGOS — Open Source проекта, который в принципе бесполезен как продукт (исключая варианты его не правомерного использования), но полезен как проект для самостоятельного (и не только) образования во всех сферах IT, которые так или иначе связаны с Java. Потому, продуктом данного проекта я предлагаю считать знания, которые из него можно получить. И сегодня я хотел бы поделиться с вами частью накопленного опыта.

Agenda:

  • History back view
  • Why Java?
  • Goals
  • Infrastructure

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

в 16:56, , рубрики: Fido, Fidonet, java, ORMLite, tosser, метки: , , ,

В данном посте речь пойдет об OpenSource проекте, призванном сделать жизнь фидошника лучше, а заодно дать возможность пользоваться Fido на мобильных устройствах с Java.

История

Как я уже писал, в 2010 году я получил узловой номер 2:5020/848. Не имея достаточного количества задач на работе, я испытывал «творческий голод», и искал, куда можно было-бы приложить свои силы. И нашел! Менее чем за месяц было написано некоторое количество ПО, которое давало различные дополнительные возможности пользователям моего узла — доступ к Fido через форум или NNTP, трансляция входящей и исходящей почты в email и многое другое.
К тому моменту, как весь этот зоопарк заработал стабильно, интерес к развитию узла я практически потерял и просматривал почту пару раз в месяц.
В 2011 году мне в голову пришла мысль переписать часть своего ПО на Java и запустить как отдельный узел, для чего я даже получил узловой номер 2:5020/849, но дальше проекта дело не пошло.
А буквально месяц назад один человек попросил меня прислать ему исходники ПО, управляющего пользователями на моем узле. Присылать их в сыром виде было бы некрасиво, поэтому код пришлось как следует почистить. И тогда, посматривая весь этот код, я решил что раз уж алгоритмы все придуманы, то почему-бы не переписать это все на Java, как я и планировал год назад? Ну вот и понеслась…
Читать полностью »

Доброго времени суток, дорогие читатели.
Недавно столкнулся с проблемой создания панели меню — стандартной панели, которая присутствует почти в каждом мало-мальски функциональном UI. И не с той проблемой, что ее сложно создать, напротив, в Swing создание UI занятие довольно нетривиальное, большинство элементов интерфейса создаются в пару строк кода (это в равной степени касается и меню). А с проблемой создания многофункционального, сложного меню, которое выливается в невероятное количество кода, который в последствии не то чтобы сопровождать, а порой даже и читать невозможно.

Для хранения всего процесса генерации меню любой сложности, решил я прибегнуть к силе под названием XML. С его помощью можно описать меню, как мы хотим его видеть, а благодаря классу-утилите, который не приминем создать, наш XML будет распарсен и в итоге можно будет получить то, ради чего все это и затевается — меню любой сложности. Если вас это заинтересовало, добро пожаловать под хаброкат...Читать полностью »

«Разбор полетов» — Episode 24 — А ты заполнил классный журнал?
Новый сезон в старом и надеемся полюбившимся составе. В сегодняшнем выпуске мы обсудим
Тема сочинения — Как провели лето:Читать полностью »

Введение

МегаФон — динамичная технологическая компания, работа которой не ограничивается исключительно предоставлением услуг связи. Например, среди наших активов есть большое количество интернет-сайтов, на которых клиенты получают различную информацию и услуги. В рамках проекта по совершенствованию и развитию наших веб-проектов мы, в том числе, создаём продукты, которые могут быть полезны и другим разработчикам. Сегодня мы хотели бы представить первый из них — шаблонизатор Histone, который является opensource-проектом, распространяемым по лицензии Apache Software License 2.0. Но обо всём по порядку.

Что такое Histone?

Многие из вас при создании веб-приложений используют различные шаблонные движки. Ситуация, когда из данных, представленных в определенном формате, вам необходимо сгенерировать некий HTML-код при помощи шаблона, задающего правила преобразования, встречается повсеместно. Несколько лет назад шаблонизаторы активно использовались для генерации HTML-кода на сервере (Smarty, FreeMarker, Velocity), сегодня все чаще и чаще возникает необходимость производить генерацию HTML-кода непосредственно в браузере. В качестве примера таких шаблонизаторов можно привести: TrimPath templates, Mustache, Google Closure Templates и т. д.Читать полностью »

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

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

List<String> getElements(String key);

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

public interface MyCollection {
    List<String> getElements(String key);
    String getElement(String key, int index);
    List<String> getElementsRange(String key, int fromIndex, int toIndex);
    int getElementsCount(String key);
}

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


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