После моей первой публикации прошло два месяца. После него, я немного сменил приоритет на одну задачу. А именно реализация дебаггера, хотя бы для Mono .NET
Метка «java» - 5
Consulo + .NET плагин, спустя два месяца
2014-05-16 в 8:05, admin, рубрики: .net, consulo, IDE, java, метки: .net, consulo, IDE, javaНет привязке к вендору! Поддержка OpenShift Cartridge Standard появится на платформе InfoboxCloud Jelastic
2014-05-13 в 6:10, admin, рубрики: java, paas, Блог компании Infobox, облачные технологии, хостинг, метки: infoboxcloud, java, paas, облачные технологии В прошлом ноябре было аннонсировано сотрудничество Jelastic и RedHat в области стандартизации подключаемых картриджей для платформ как сервис (PaaS). В результате этого взаимодействия появится поддержка картриджей OpenShift на платформе InfoboxCloud Jelastic. Это позволит разработчикам технологий и сервисов предоставлять решения для различных облачных платформ без переписывания и получать доступ к широчайшиму количеству пользователей. Снижение временных затрат компаний на адаптацию и упаковку программного обеспечения для различных облачных платформ позволит проще и быстрее доставлять технологии пользователям и сфокусироваться на решении реальных задач.
Благодаря стандартизации на платформе Jelastic раньше будут появляться новые технологии. Среди них в новом релизе ожидаются:
- Neo4j Server: масштабируемая графовая база данных
- Redis: хранилище «ключ-значение»
- Apache Cassandra: масштабируемая высокодоступная база данных
- Jetty (8 и 9): веб-сервер со встроенным HTTP сервером и сервлет-контейнером
- Python (2.7, 3.3, 3.4)
- JBoss 7: сервер приложений Java от RedHat
- Varnish: кеш
Всем привет. Последние события в Украине как-то отбросили меня от хабра, но вот, все, более менее, наладилось и я, вернувшись к привычному ритму работы, вспомнил о парочке своих постов в черновиках. В связи с выходом 8-й версии явы, пост, возможно, уже несколько устарел, но не пропадать же добру.
Итак, как-то вечером, оптимизируя очередной кусочек кода — случайно заглянул в String и обнаружил, что класс строки уже не тот. Так как строка, пожалуй, один из самых распространенных типов, думаю многим будет интересно узнать об изменениях.
Оптимизирован метод String.split()
Метод split строки стал быстрее работать для односимвольного параметра. Теперь в методе вообще не будет использоваться регексп и будет применен indexOf в цикле.
Было:
public String[] split(String regex, int limit) {
return Pattern.compile(regex).split(this, limit);
}
public String[] split(String regex, int limit) {
if (((regex.value.length == 1 &&
".$|()[{^?*+\".indexOf(ch = regex.charAt(0)) == -1) || ...)) {
...
while ((next = indexOf(ch, off)) != -1) {
...
}
...
return result;
}
return Pattern.compile(regex).split(this, limit);
}
2 поля удалены
Начиная с 6-го апдейта 7-й явы из класса строки были удалены 2 поля:
private int offset;
private int count;
Как вы, наверное, помните эти поля использовались при вызове метода substring. Назначение полей — уменьшение сложности метода и попытка избежать создания нового массива символов строки используя ссылку на уже существующий массив. Что, в свою очередь, в некоторых ситуациях могло порождать известную утечку памяти. Теперь же размер строки на 8 байт меньше и проблема утечки навсегда решена.
Программа курса «Java Core»
2014-04-09 в 20:26, admin, рубрики: java, Блог компании GolovachCourses, курсы программирования, Учебный процесс в IT, метки: java, курсы программированияЯ занимаюсь онлайн обучением Java и хотел бы вынести на обсуждение новую программу курса Java Core.
Программа курса
Курс состоит из 45 лекций разбитых на 9 модулей по темам
- Модуль: Основы
- Лекция #1.1: целочисленные типы, типы с плавающей точкой, bit operations
- Лекция #1.2: массивы, java.lang.String, format
- Лекция #1.3: for/switch/while, boolean logic(|, ||, &, &&, !, ^)
- Лекция #1.4: порядок выполнения операторов, построение internal DSL
- Модуль: Процедурное программирование
- Лекция #2.1: Циклы, итеративные алгоритмы
- Лекция #2.2: Рекурсия I, основы
- Читать полностью »
Мифы и легенды про Big Data
2014-04-09 в 5:25, admin, рубрики: big data, highload, java, аналитика, Блог компании ВымпелКом (Билайн), реляционные базы данных, телефония, метки: big data, highload, java, аналитика, реляционные базы данных
Один из наших кластеров для пилотных задач (Data node: 18 servers /2 CPUs, 12 Cores, 64GB RAM/, 12 Disks, 3 TB, SATA — HP DL380g)
— Что такое Big Data вообще?
Все знают, что это обработка огромных массивов данных. Но, например, работа с Oracle-базой на 20 Гигабайт или 4 Петабайта — это ещё не Big Data, это просто highload-БД.
— Так в чём ключевое отличие Big Data от «обычных» highload-систем?
В возможности строить гибкие запросы. Реляционная база данных, в силу своей архитектуры, предназначена для коротких быстрых запросов, идущих однотипным потоком. Если вы вдруг решите выйти за пределы таких запросов и собрать новый сложный, то базу придётся переписывать – или же она умрёт под нагрузкой.
— Откуда берётся эта новая нагрузка?
Если чуть углубиться в архитектуру, то можно увидеть, что традиционные базы данных хранят информацию очень дисперсионно. Например, у нас номер абонента может быть на одном сервере в одной таблице, а его баланс — в другой таблице. Быстродействие требует максимального разбиения данных. Как только мы начинаем делать сложные join'ы, производительность резко падает. Читать полностью »
Перевод legacy-проекта на Dependency Injection. Путь Ситха
2014-03-31 в 20:46, admin, рубрики: dependency injection, guice, java, spring, star wars, ненормальное программирование, печеньки, Программирование, метки: dependency injection, guice, java, spring, star wars, печеньки Внесу и свой вклад в тренд темного программирования.
Многим из вас знакома дилемма: использовать ли DI в своем проекте или нет.
Поводы перехода на DI:
- создание развитой системы авто-тестов
- повторное использование кода в различном окружении, в том числе в различных проектах
- использование 3rd-party библиотек, построенных на DI
- изучение DI
Доводы не использовать DI:
- усложнение понимания кода (поначалу)
- необходимость конфигурирования контекста
- изучение DI
Допустим, у нас есть большой рабочий проект, принято решение: переводить на DI. Разработчики чувствуют свой потенциал, уровень мидихлориан в крови зашкаливает.
Путь тебя ждет тернистый и долгий, мой юный падаван.
Если проект большой и в нем много разработчиков, одним коммитом вряд ли удастся сделать такой рефакторинг. Поэтому мы используем несколько плохих практик, упростив переход, а затем от них избавимся.
Читать полностью »
Программа курса «Multicore programming in Java»
2014-03-25 в 15:41, admin, рубрики: java, Алгоритмы, Блог компании GolovachCourses, курсы программирования, многопоточность, многоядерность, метки: java, курсы программирования, многопоточность, многоядерность Добрый день.
Меня зовут Головач Иван, я руковожу небольшой образовательной компанией. Мы занимаемся удаленным Java-образованием.
Хотелось бы услышать мнение сообщества по поводу
- программы курса «Multicore programming in Java»
- литературы к курсу
Кратко о курсе: стартует 28 апреля, ведется в режиме вебинаров дважды в неделю в 19.00-22.00, состоит из 16 лекций по 2.5 часа (=40 лекционных часов), к каждой лекции дается расширенное задание, рассчитан на Java Junior/Middle.
Читать полностью »
JPHP — Новый движок php для Java VM + JIT
2014-03-22 в 20:04, admin, рубрики: java, jvm, php, Компиляторы, метки: java, jvm, PHPПредставляю вам свой open-source проект — JPHP. Это альтернативная реализация PHP для JavaVM с поддержкой JIT. Я начал проект в одиночку в октябре 2013 года и за 4 месяца реализовал компилятор php в байткод JVM. Язык поддерживается на уровне PHP 5.3, частично поддерживаются возможности PHP 5.4 и 5.5. По своей идеологии проект напоминает JRuby и Jython.
Я подготовил небольшую презентацию, которая расскажет о проекте и не отнимет у вас много времени:
Long Polling для Android
2014-03-22 в 10:51, admin, рубрики: android, java, long polling, nginx, метки: android, java, long polling, nginx Прочитав статью, стал внедрять в web проекты Long Polling. На nginx крутится серверная часть, на javascript клиенты слушают каналы. Прежде всего это было очень полезно для личных сообщений на сайте.
Потом в поддержку web проектов стали разрабатываться приложения под Android. Встал вопрос: как реализовать многопользовательский проект, в котором равнозначно участвовали бы как браузерные клиенты, так и мобильные приложения. Так как Long Polling уже был внедрён в браузерные версии, решено было написать java модуль и для Android.
Читать полностью »
IntelliJ IDEA 13.1: Весеннее обновление
2014-03-22 в 8:49, admin, рубрики: AngularJS, intellij idea, java, javascript, nashorn, Блог компании JetBrains, разработка программного обеспечения, метки: AngularJS, intellij idea, java, javascript, nashorn, разработка программного обеспеченияПривет!
Вместе с хорошим известием для Северного полушария, что продолжительность светлого времени суток увеличилась, мы хотим рассказать о релизе IntelliJ IDEA 13.1, случившемся на этой неделе. Но перед рассказом о новинках хотелось бы отметить еще одно, весьма ожидаемое всем Java-cообществом, событие…