-
Про ASM и манипуляции с байт-кодом.
Больше месяца назад автор статьи Decrypting Java Malware using ASM прислал мне оригинальный текст на русском языке для публикации в блоге, с целью донести широкому кругу лиц определенные аспекты защиты программ написанных на java от действий недоброжелателей. Автор статьи — разработчик, который долгое время занимается разработкой средств для противодействия реверс-инжирингу и взлому ПО, специалист в…
-
Let’s rock, everybody!
Важно! Все измышления и предположения отражают мое личное мнение и естественно могут не совпадать с мнением большинства, впрочем, как и другие аналогичные статьи. Статья про рок-банды, новое время и программирование. Давно хотел провести аналогию между музыкой и программированием. Например команда разрабатывающая большие и сложные системы чем-то похожа на симфонический оркестр: Вначале гениальный композитор должен…
-
Про старый добрый RMI
Не так давно, после многолетнего перерыва, в одном небольшом проекте использовал такую древнюю технологию как RMI. В итоге хотел поделиться общими впечатлениями и сделать небольшие заметки “для себя” на будущее. Задача была типовой — перебросить выполнение некоторых функций с одного сервера на другой, на котором установлено специальным образом настроенное оборудование и программное обеспечение. В результате…
-
Комиксы
Поскольку эта рабочая неделя короткая и уже постепенно подходит к концу, то я решил не публиковать сегодня никаких нагружающих мозг публикаций. Давно хотел вместо очередной технической статьи выложить небольшую подборку ссылок на веб-комиксы, которые регулярно читаю в перерывах на обед и перед работой. 1. CommitStrip Французские авторы. Про жизнь небольшой команды занимающейся веб-разработкой.
-
Java и лямбда-выражения.
Ни для кого не секрет, что во второй половине 2013 года планируется выпуск Java 8 (UPD: на JavaOne 2013 в Москве сообщили, что выход восьмерки перенесут на 2014). Мне наконец-то надоело быть пассивным читателем всех этих многочисленных восторженных отзывов о нововведениях языка и я решил скачать предварительную версию JDK (благо она уже давно выложена) и…
-
Уменьшение размеров JavaScript и CSS файлов.
В данном случае идет речь о минификации, т.е. например удалении лишних пробельных символов и комментариев. Часто используется при подготовки и развертывании систем готовых к промышленной эксплуатации. Конечно, также с целью экономии трафика имеет смысл включать GZIP compression в настройках сервер, но данная статья не об этом. Минификация – операция довольно рутинная и по-хорошему должна быть…
-
Java. Примеры копирования файлов. Эволюция и революция.
Задачка копирование файлов в свое время была хорошим тестом для программистов. 1. Streams. До появления пакета NIO (New I/O, версия Java 1.4) многие использовали обычные потоки. public static void copy(File source, File dest) throws IOException { FileInputStream is = new FileInputStream(source); try { FileOutputStream os = new FileOutputStream(dest); try { byte[] buffer = new byte[4096];…
-
Сколько стоит талант программиста (и не только).
Давно уже ничего не писал на общие темы – о выборе профессии, жизненном пути или поиске предназначения. Последний раз подобных тем касался почти три года назад. Прежде чем начать изложение, хотел сообщить, что я осознаю всю нестрогость моих расчетов и надеюсь никто не станет воспринимать приведенные ниже доводы буквально! Теперь можно приступать. Думаю многие знают…
-
Java Security Update (Java 7u13)
Вышло долгожданное обновление Java! Oracle выпустил релиз даже раньше запланированного срока (изначально должен был выйти 19 февраля 2013г). В анонсе сказано, что обновление содержит 50 исправлений безопасности: Due to the threat posed by a successful attack, Oracle strongly recommends that customers apply CPU fixes as soon as possible. This Critical Patch Update contains 50 new…
-
Липкий запуск сервисов в Android-e.
В Android API есть такой абстрактный класс как Service. Он является наследником ContextWrapper-а, который в свою очередь является наследником Context-a. При некоторых допущениях можно относиться к сервисам как к “активити без UI” (хотя это не совсем правильно в деталях). Использовать сервис рекомендуется для задач не требующих прямого вмешательства пользователя. В документации особо акцентируется внимание на…