Рубрика «java» - 279

После появления статей типа "Я не знаю ООП" — возникает желание внести ясность, «сорвать покровы» и «докопаться до истины».

Принципы объектно-ориентированности

Обычно выделяют (читай: на собеседовании требуют назвать) четыре «принципа объектно-ориентированного программирования»: абстракцию, инкапсуляцию, наследование и полиморфизм.

На мой взгляд (не говоря о том, что абстракция и полиморфизм могут быть запросто отнесены к подразделам наследования), принцип тут один, в общем, тот же самый, что при проектировании баз данных: представление всего в виде объекта — некоторой штуковины со свойствами. Набор обычно бывает фиксированным, и тогда говорят о классе объектов, а даже если понятия класса и нет, то наличие свойств с определёнными названиями подразумевается логикой программы, т.е. нечто типа класса в виде некоего минимального набора свойств всё равно присутствует. В общем, воззрения восходят к давнему С-шному/паскалевскому типу данных struct/record. Потом к этому добавили немного «функциональности» (в смысле функционального программирования): значением свойства может быть функция, причём такая, которая имеет доступ к самой структуре/записи, значением одного из свойств которой она является. Сей феномен, в лучших традициях немецкого латиноязычного нейминга (когда опция называется «вариантом», а степень числа — «потенцией»), назвали «методом». Желание повторно использовать код, в сочетании с представлением каждого предмета как некоего подобия паскалевской «записи», привело к появлению концепции «наследования».Читать полностью »

Предисловие

В данной статье раскрывается метод получения доступа к адресному пространству процессора любого телефона Siemens платформы SGold через единственную среду, в которой можно запустить хоть какой-то код, то есть через Java-машину.
Предлагаемый способ был придуман товарищем Chaos (Дмитрием Захаровым), человеком без которого, как говорится, не было возможности модифицировать и отлаживать прошивку на телефонах Siemens c BB-процессором
семейств SGoldLite и SGold-2. А я лишь его расширил и систематизировал.
Читать полностью »

Слышали ли вы о Queuepy? А слышали ли вы об Open Source проектах, написанных на Java? А интересно ли вам узнать как они работают?

How its made для программистов. Серия №2

Если ваш ответ на последние два вопроса положителен, то неважно, слышали или нет вы о Queuepy до сих пор. Далее нам по пути.
Читать полностью »

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

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

Привет!
В данном топике я расскажу как создать простой плагин для IntelliJ IDEA и PyCharm. Так как все IDE содержат одинаковый интерфейс для работы с плагинами, то модификация его для других систем не требует значительных усилий (подробнее), в отличии от процесса непосредственной разработки.

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

Плагины пишутся на Java, UI создается на SWING. Документация для разработки плагинов состоит всего лишь из нескольких страниц и горстки примеров. На просторах интернета данная тематика не отражена совсем. Единственное, что слегка помогает это наличие исходных кодов у некоторых уже созданных плагинов.

Изначально я хотел создать окно в котором можно быстро и удобно выбрать описание стандартной библиотеки питона, но получилось плохо. Добавить ещё можно многое, хотя бы поиск и подсветку документации питона. Доделывать желания нет, пока проще по старинке использовать браузер.

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

Добрый день.

Спешу поделиться небольшим опытом использования Google Maps API Web Services.
В этой статья я расскажу как использовать службы для геокодирования, геодекодирования.
Так же как можно находить расстояния и маршруты между точками. И конежно же коснусь решения задачи «куда сходить ближе туда или туда».
Читать полностью »

Java клиент для FlexMonkey, или Java style LocalConnection

Думаю, во многих командах, так или иначе связанных с разработкой Flex-приложений, рано или поздно возникает вопрос об автоматизированном тестировании продукта. А так, как наша команда занимается разработкой AIR-клиента для online-покера, совершенно закономерно, такой вопрос возник и у нас.
Читать полностью »

Технологическая мигрень навсегда оставляет разработчиков – хостить проекты на Java теперь будет проще. Облачная платформа Jelastic получила $2 млн. инвестиций. Деньги пойдут на расширение бизнеса: США и страны Еврозоны уже проявили свой интерес к Jelastic.

image

Наверное, каждый Java-разработчик сталкивался с проблемой выбора хостинга. При этом рынок облачных сервисов на этот счет упорно молчал на протяжении 15 лет. Собственно, Jelastic и вырос из этой проблемы. Создав крупный проект на Java, Руслан Синицкий, Константин Александров и Алексей Скутин долго не могли найти площадку, на которой бы он разместился. Они оказались перед дилеммой: воспользоваться готовой платформой и переписать весь код приложения или взять на себя хлопотный процесс администрирования. Оба пути выглядели малопривлекательно. И тогда отцы-основатели Jelastic выбрали третий вариант – они создали собственную платформу.

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

Весь поисковый индекс Google размещается в RAM памяти уже как минимум 5 лет. Почему бы не попробовать сделать то же самое и с поисковым индексом для Lucene?

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

Очевидный вопрос – не попробовать ли нам загрузить весь индекс, в предоставляемый Lucene класс RAMDirectory?
Читать полностью »

Если вы уже знаете, что такое Maven и хотите собрать простое модульное веб приложение (если нет- можно прочитать топик о нем и основы). Тема данного топика- как сконфигурировать pom.xml, добавить отдельный модуль к проекту, подключить плагины, развернуть приложение на сервере Apache Tomcat.
Читать полностью »


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