Этим постом хочу начать новую рубрику «Полезное», в которой будут располагаться разные полезные, на мой взгляд, фрагменты кода, которые можно будет использовать в дальнейшем.
Как только начал делать посты, сразу возникла необходимость показать красивый исходный код на странице. Если бы у меня был свой WordPress на своём хостинге, то думаю проблем с этим не возникло. Взял бы плагин и прикрутил.
Но я использую пока WordPress на бесплатном хостинге, где нет возможности ставить собственные плагины, поэтому как говорится за неимением королевы, придется довольствоваться горничной. Если вставлять исходники прям как есть из Eclipse, который я использую в качестве IDE, то форматирование отваливается. Происходит это из-за того, что несколько пробелов сворачиваются в один.
Можно заключать исходный код в теги , но тогда шрифт не понятно какой, а я хочу такой же, как в тексте. Можно было бы править CSS, чтобы в PRE теге показывался нужный шрифт, но при быстрой смене темы придется снова править CSS. Всё это мне не подошло. Я немного подумал и написал простое приложение, которое преобразует пробелы табуляции исходного кода в специальные пробельные символы HTML.
Безупречный код на примере Java! Самый красивый код!
К примеру, есть у нас строка public static void. После «перекодировки» получим public static void, где — HTML пробельный символ. Пробел заменился специальным символом. Аналогичным образом работает и приложение. Однако, все подряд пробелы я заменять не стал. Приложение заменяет табуляцую на несколько пробелов, а к символу перевода на новую строку добавляет
. Почему не заменяются обычные пробелы, а только табы? При выравнивании исходного текста в Eclipse, используются табы для реализации отступов разных уровней.
После использования понял, что не хватает перекодирования кавычек. Теперь кавычки переводятся в &uot;. Если использовать в исходном коде кавычки, которые есть, получались некрасивости.
Ниже представлен исходный код приложения.
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.UIManager;
public static void createGUI() JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame(«WordPress coder»);
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
final JTextArea textArea = new JTextArea();
panel.add(new JScrollPane(textArea), BorderLayout.CENTER);
JButton button = new JButton(«Decode»);
panel.add(button, BorderLayout.SOUTH);
button.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) String source = textArea.getText();
source = source.replaceAll(«\&», «);
Выпуск 16. Где взять тексты программы ?
source = source.replaceAll(«t», TAB);
source = source.replaceAll(«n», «n»);
source = source.replaceAll(«»», «»»);
Но к сожалению не всё так просто. Редактировать пост с исходным кодом придется только на вкладке «HTML». Если переключиться на вкладку «Визуально», а потом обратно, то пробельные символы ъсъедятся. Поэтому при редактировании поста нужно быть обязательно на вкладке «HTML».
Опишу коротко приложение. Внешний вид приложения показан на рисунке ниже.
Принцип работы следующий. Берем исходный код, копируем, затем вставляем в приложение и нажимаем «Decode». В результате получаем код, который можно вставить в редактор WordPress’а.
Источник: javaswing.wordpress.com
Качаем скиллы. Оpen source проекты на Github для начинающих джавистов
В прошлых статьях на JavaRush, посвященных “прокачке” скиллов и поиску работы для начинающих Java-программистов, мы уже говорили о важности работы над независимыми open source проектами для наработки практического опыта, возможности добавить эти проекты в свое резюме и хвастаться ими на собеседованиях. Как отмечают опытные разработчики, участие в открытых проектах — это один из лучших способов получить практический опыт в Java (или любом другом языке программирования). Коллективная работа над open source проектами дает новичкам возможность поучаствовать в создании реальных продуктов вместе с другими кодерами и прочими специалистами. А это, в свою очередь, существенно повышает шансы найти хорошую работу, особенно для джуниор-программистов, резюме которых еще не изобилует опытом реального трудоустройства. Поэтому сегодня мы подготовили подборку наиболее интересных и популярных open source Java-проектов на GitHub, к которым может присоединиться начинающий разработчик.
1. Elasticsearch
Elasticsearch — это распределенная поисковая система на основе REST архитектуры, разработанная для использования в облачных платформах. ElasticSearch базируется на Apache Lucene, бесплатной библиотеке программного обеспечения для поиска информации с открытым исходным кодом, и умеет обрабатывать полнотекстовые поисковые запросы, а также поддерживает лингвистический поиск по документам. Поисковик ElasticSearch ориентирован прежде всего на документы, которые представлены в виде JSON-объектов. Индексирование создает или обновляет документы, после чего их можно искать, сортировать и фильтровать. Сайт проекта: https://www.elastic.co/ Количество звезд на GitHub: 46,7 тыс.
2. Strongbox
Strongbox — это современный менеджер репозиториев артефактов с открытым исходным кодом, написанный на Java. “Мы стремимся предоставить простую и надежную платформу для размещения различных типов бинарных артефактов независимо от вида вашего хранилища,” — отмечают авторы проекта. Благодаря хорошо развитой архитектуре, Strongbox предоставляет собственные реализации для различных форматов пакетов, таких как Maven, NPM, NuGet и Raw. Все реализованные форматы пакетов написаны изначально на Java. Цель проекта — внедрить универсальный менеджер репозиториев, который может размещать и обслуживать артефакты в любом из основных форматов. Strongbox включает в себя поисковую систему и язык поисковых запросов для поиска артефактов. Сайт проекта: https://strongbox.github.io/ Количество звезд на GitHub: 260
3. TEAMMATES
TEAMMATES — это бесплатный онлайн-инструмент, который позволяет пользователям оставлять анонимные отзывы о своих коллегах или, в случае со студентами, преподавателях. В первую очередь TEAMMATES предназначен как раз для студентов и преподавателей. С помощью этого инструмента пользователи могут устраивать опросы (анонимные или нет), члены одной группы имеют возможность оценивать вклад друг друга в работу над проектами, преподаватели могут оставлять отзывы студентам и т.д. Инструментарий TEAMMATES обладает довольно обширным функционалом, включая личные профили пользователей и поисковик. Сайт проекта: https://teammatesv4.appspot.com/ Количество звезд на GitHub: 966
4. JabRef
JabRef — это графическая система управления библиографической информацией, написанная на Java, которая использует BibTeX (BibTeX — программное обеспечение для создания форматированных списков библиографии) в качестве основного внутреннего формата. Предоставляет графический пользовательский интерфейс для редактирования файлов BibTeX, импорта данных из научных баз данных, а также для поиска и управления BibTeX-файлами.
JabRef позволяет исследователям, ученым и писателям создавать и повторно использовать библиографические ссылки. Созданные ссылки используются для создания библиографии, списка библиографических ссылок в научных статьях, монографиях, книгах и других работах. В JabRef реализован полнотекстовый поиск по всей библиографии, поддерживается группировка по любым полям BibTeX, ключевым словам, обеспечено автоматическое создание BibTeX-ключей и т.д. Сайт проекта: https://www.jabref.org/ Количество звезд на GitHub: 1,5 тыс.
5. Wikimedia Commons Android App
Русские Блоги
В общей сложности 18 программ с открытым исходным кодом для обфускации и шифрования кода Java.
Обфускатор Java ProGuard
ProGuard — это бесплатное приложение для сжатия, оптимизации и микширования файлов Java. Он удаляет бесполезные классы, поля, методы и свойства. Максимально оптимизируйте байт-код, используйте короткие и бессмысленные имена для переименования классов, полей и методов. eclipse интегрировал Proguard. Дополнительная информация о ProGuard | ![]() |
Недавно обновленный:Выпущен ProGuard 4.11, обфускатор кода JavaОпубликовано 2 года назад
Фреймворк для обработки байт-кода Java ASM
ASM — это среда обработки байт-кода Java. Он может напрямую генерировать классы-заглушки или другие прокси-классы динамически в двоичной форме или динамически изменять классы при загрузке. ASM предоставляет функции, аналогичные таким инструментам, как BCEL и SERP, но спроектирован таким образом, чтобы он был меньше и быстрее, что делает его пригодным для инструментария кода в реальном времени. ASM JavaDoc: http: // к . ![]() |
Недавно обновленный:[Daily Blog] Подробный байт-код — интерфейс ключа ASM MethodVisitorОпубликовано 2 года назад
Путаница при сжатии JS и CSS JsCompressor
JsCompressor в основном используется для сжатия и запутывания JS (Javascript) и CSS. Основанный на YUI Compressor, цель состоит в том, чтобы облегчить использование веб-разработчиками, которые не знакомы с Java или не любят сжатие командной строки. Возможности: 1. Сжимайте и скрывайте файлы JS или CSS во всем каталоге (включая подкаталоги) и генерируйте * .min.js или * .m . в той же папке.![]() |
Недавно обновленный:Программная рекомендация OSCHINA 6-4 JsCompressorОпубликовано 5 лет назад
Считыватель байт-кода JClassLib
JClassLib — это не только средство чтения байт-кода, но также содержит библиотеку классов, позволяющую разработчикам читать, изменять и записывать файлы и байт-коды Java-классов.![]() |
Недавно обновленный:Выпущен JClassLib 4.3, средство просмотра байт-кода JavaОпубликовано 2 года назад
Jocky
1.1 Что такое Jocky? Мы знаем, что Java — это кроссплатформенный язык программирования. Его исходный код (файл .java) компилируется в независимый от платформы байт-код (файл .class), а затем динамически связывается во время выполнения. Таким образом, скомпилированный файл класса будет содержать таблицу символов, чтобы программу Java можно было легко декомпилировать. Я считаю, что каждый Java-разработчик . |
[Бизнес] Обфускатор кода Java DashO Pro
JODE
JODE включает обфускатор Java и оптимизатор Java. Файл сценария может управлять различными методами оптимизации файла класса. Он поддерживает следующие операции: 1. Возможность переименовать Класс, метод, поле и локальные имена в сокращенные, неоднозначные или конкретные имена или в соответствии с таблицей преобразования. 2. Удалить отладочную информацию. 3. Удалить «некротический» . ![]() |
[Бесплатно] Обфускатор Java yGuard
[Бизнес] Обфускатор Java Allatori
[Business] Инструмент расширения виртуальной машины Java Excelsior JET
Excelsior JET — это инструмент расширения виртуальной машины Java (не с открытым исходным кодом) с технологией предварительной компиляции. Предварительный компилятор может преобразовывать ваши файлы классов и jar-файлы в высокооптимизированные двоичные исполняемые файлы, которые могут работать на платформе Intel x86, в системах Microsoft Windows и Linux. Подобно исходным файлам классов, работающим в традиционной JVM (виртуальной машине Java) . ![]() |
Недавно обновленный:Выпущен Excelsior JET 9.0 MP2, инструмент расширения виртуальной машины JavaОпубликовано 2 года назад
RetroGuard
RetroGuard — хороший обфускатор Java, который также включен в Enterprise Edition JBuilder7. А yGuard — это обновленная версия RetroGuard с функцией ANT. Дополнительная информация о RetroGuard |
JavaGuard
ReJava
ReJava предоставляет библиотеку классов для управления файлами классов (включая байт-код) и инструмент с графическим интерфейсом для редактирования, обфускации, внедрения кода и поиска файлов классов. |
Источник: russianblogs.com