27 марта 2016 г.
Spring JdbcTemplate vs JdbcDaoSupport примеры
Spring JdbcTemplate vs JdbcDaoSupport примеры: Примеры использования Spring JdbcDaoSupport и JdbcTemplate напрактике
24 декабря 2013 г.
Гуглотормоз
В общем устал я бороться с тормозами гуглоблогов... Прекращаю вести этот блог и вновь перемещаюсь на WP жаждащим сюда => http://blog.leodev.ru
24 ноября 2013 г.
Криптография / JCE (Java Cryptography Extentions) - Triple DESede
По не определенному стечению обстоятельств меня занесло в Java разработке немного в другой уровень программирования и в ближайшее время ожидается ряд статей по криптографии.
Прежде чем начать вникать в то что будет написано ниже нужно хотя бы минимально знать что такое Биты и побитовые операции о которых я писал в прошлой статье - подробности в wikipedia и конечно же Java Core. Так же советую заглянуть в блог skipy посмотреть тему про кодировки...
JCE (Java Cryptography Extentions) позволяет работать с энкрипшн, генерировать ключи, генерировать MAC. Он поддерживает симметричные, асимметричные блок- и стрим шифры.Начнем мы с самого простого: энкрипшн - декрипшн.
Существует множество алгоритмов шифрования. Поддерживаемые алгоритмы можно узнать из документации к пакету javax.crypto.spec, он включает в себя RC2, RC5, Blowfish, DES, Triple DESede, AES Rijndael.
Сегодня мы рассмотрим криптование на примере алгоритма Triple DESede, который был одобрен для использования в правительстве USA. Он основан на стандарте DES (Digital Encryption Standard), 64-битном шифре, реально использующем 56 битов. Troiple DESede означает тройной DES (encryption-decryption-encryption), суть которого в том, что информация шифруется с одним ключом, дешифруестя с другим, и вновь шифруется с третьим. Также, как и DES, ломается брут-форсом.
Triple DES (3DES) — это симметричный блочный шифр, созданный Уитфилдом Диффи, Мартином Хеллманом и Уолтом Тачманном в 1978 году на основе алгоритма DES, преследуя цель устранить главный изъян — малую длину ключа (56 бит), который в свою очередь может быть взломан полным перебором ключа.
Скорость работы 3DES в 3 раза ниже, чем у DES, но криптостойкость намного выше — время, требуемое для криптоанализа 3DES, может быть в миллиард раз больше, чем время, нужное для вскрытия DES. 3DES используется чаще, чем DES, который легко взламывается при помощи сегодняшних технологий (в 1998 году организация Electronic Frontier Foundation, используя специальный компьютер DES Cracker, вскрыла DES за 3 дня). 3DES является простым способом устранения недостатков DES. Алгоритм 3DES построен на основе DES, поэтому для его реализации возможно использовать программы, созданные для DES.
Прежде чем начать вникать в то что будет написано ниже нужно хотя бы минимально знать что такое Биты и побитовые операции о которых я писал в прошлой статье - подробности в wikipedia и конечно же Java Core. Так же советую заглянуть в блог skipy посмотреть тему про кодировки...
JCE (Java Cryptography Extentions) позволяет работать с энкрипшн, генерировать ключи, генерировать MAC. Он поддерживает симметричные, асимметричные блок- и стрим шифры.Начнем мы с самого простого: энкрипшн - декрипшн.
Существует множество алгоритмов шифрования. Поддерживаемые алгоритмы можно узнать из документации к пакету javax.crypto.spec, он включает в себя RC2, RC5, Blowfish, DES, Triple DESede, AES Rijndael.
Сегодня мы рассмотрим криптование на примере алгоритма Triple DESede, который был одобрен для использования в правительстве USA. Он основан на стандарте DES (Digital Encryption Standard), 64-битном шифре, реально использующем 56 битов. Troiple DESede означает тройной DES (encryption-decryption-encryption), суть которого в том, что информация шифруется с одним ключом, дешифруестя с другим, и вновь шифруется с третьим. Также, как и DES, ломается брут-форсом.
Triple DES (3DES) — это симметричный блочный шифр, созданный Уитфилдом Диффи, Мартином Хеллманом и Уолтом Тачманном в 1978 году на основе алгоритма DES, преследуя цель устранить главный изъян — малую длину ключа (56 бит), который в свою очередь может быть взломан полным перебором ключа.
Скорость работы 3DES в 3 раза ниже, чем у DES, но криптостойкость намного выше — время, требуемое для криптоанализа 3DES, может быть в миллиард раз больше, чем время, нужное для вскрытия DES. 3DES используется чаще, чем DES, который легко взламывается при помощи сегодняшних технологий (в 1998 году организация Electronic Frontier Foundation, используя специальный компьютер DES Cracker, вскрыла DES за 3 дня). 3DES является простым способом устранения недостатков DES. Алгоритм 3DES построен на основе DES, поэтому для его реализации возможно использовать программы, созданные для DES.
23 ноября 2013 г.
Побитовые операции и операции битового сдвига в Java
Даже не думал что мне придется столкнуться с чем-то подобным, но как говорится все бывает в первый раз. Дублирую как заметку статью с Хабра для нового проекта по lineage 2.
Побитовые операции пременяются для быстрого выполнения вычислений и меньшего потребления ресурсов, связанных с этими вычислениями.
Побитовые операции пременяются для быстрого выполнения вычислений и меньшего потребления ресурсов, связанных с этими вычислениями.
Ярлыки:
байт,
бит,
побитовые операции,
java
18 ноября 2013 г.
Как писать хорошие user stories: part 2
В первой части я обещал что опишу все полезные практики и совершенные ошибки в эту статью, к сожалению в последнее время слишком плотный график мешает писать что-то в блог, поэтому возможно это будет последняя статья на ближайшее время.Хорошие практики
- Используйте истории как возможность начать общение с командой, пользователями и клиентами. История – это не спецификация, ее не должен писать аналитик в гордом одиночестве и она не заменяет диалога. Все ровным счетом наоборот: история – это суть обсуждений того, как пользователи взаимодействуют с продуктом.
Ярлыки:
scrum
4 октября 2013 г.
Гармония цвета

Сегодня общался с начинающий разработчиком-самоучкой, пару дней назад помогал ему в написании плагина для WP, на вопрос "Как у Вас с дизайном?" получил не однозначный ответ, но после того как он скинул мне ссылку все стало на свои места. Слабонервных прошу не открывать http://miha-coder.u-gu.ru/.
1 октября 2013 г.
Как писать хорошие user stories: part 1
В продолжении статьи про SCRUM хотелось бы более углубиться в user stories.В кругу фрилансеров я работаю уже более 7 лет и часто на моем пути были кастомеры которые сами не знали что хотят не говоря о том что бы составить правильно ТЗ. В итоге я делал как считал нужным и были не приятные моменты когда заказчик после недели моих бессонных ночей говорил что это не то что он хотел в итоге приходилось переделывать. Но со временем набираешься опыта и сегодня я выпытываю все до мелочей и лишь потом соглашаюсь на работу, но речь не об этом. Работая в команде мы, люди с разными взглядами и понятием правильного, должны найти общий язык что бы не создавать
басню Крылова - Лебедь, Щука и Рак. И подробно составленный план действий является отличный помощником как в разработке проекта, так и в реализации готового СУПЕР продукта.
30 сентября 2013 г.
SCRUM
Итак после длительного перерыва я снова вернулся в блогосферу. С сегодняшнего дня будут заметки не только о практике но и о теории разработки.. Начнем о такой методологии как SCRUM.
Что же такое скрам? Основы.
Scrum (Скрам) — это не аббревиатура, этот термин взят из регби, который обозначает схватку вокруг мяча.
В нашем случае все немного иначе.
Scrum - одна из самых популярных методологий гибкой разработки. Одна из причин ее популярности - простота. Scrum по-настоящему прост, его можно описать в одной короткой статье, что я и постараюсь сделать в этом обзоре.
27 мая 2013 г.
Сброс пароля для root в mysql установленном через Denwer
И так вы забыли пароль от рута и при входе в phpmyadmin вам пишет: #1045 - Access denied for user 'root'@'localhost' (using password: YES) Ничего страшного, ща поправим. Останавливаем сервер, в моем случае я делал через stop Denwer, идем в папку куда вы установили Денвер (при запуске эта папка виртуализируется как выделенный диск). В моем случае это c:\WebServers\usr\local\mysql-5.1\ в ней лежит файл my.cnf заходим в него и после [mysqld] вбиваем строчку:
skip-grant-tables
Сохраняем и закрываем файл. Теперь сервер будет нас пускать без инициализации пароля. Запускаем Денвер, заходим в http://localhost/Tools/phpMyAdmin/ нажимем в меню SQL и вводим две строчки, где вместо MyNewPass пишем свой пароль:
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;
Жмем GO/Выполнить. Выключаем Денвер, стираем строку со skip-grant-tables Запускаем Денвер заново, и в папке по адресу z:\home\localhost\www\Tools\phpmyadmin\ редактируем 3 строчки файла config.inc.php таким образом:
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'MyNewPass';
skip-grant-tables
Сохраняем и закрываем файл. Теперь сервер будет нас пускать без инициализации пароля. Запускаем Денвер, заходим в http://localhost/Tools/phpMyAdmin/ нажимем в меню SQL и вводим две строчки, где вместо MyNewPass пишем свой пароль:
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;
Жмем GO/Выполнить. Выключаем Денвер, стираем строку со skip-grant-tables Запускаем Денвер заново, и в папке по адресу z:\home\localhost\www\Tools\phpmyadmin\ редактируем 3 строчки файла config.inc.php таким образом:
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'MyNewPass';
Ярлыки:
1045,
пароль,
сброс пароля,
access denied,
denwer,
mysql,
root
25 марта 2013 г.
Установка postgresql 9.1.1-1 на windows7 x64
Столкнулся с проблемой в установке PostgreSQL, потратил день в пустую на инсталляцию обычной базы данных. Решил сделать заметку с подробным описанием собственно сабж ниже...
Итак нам понадобится:
- Windows 7x64
- postgresql-9.1.1-1-windows-x64
Ярлыки:
база данных,
кодировка,
установка,
install,
PostgreSQL,
windows 7,
x64
18 марта 2013 г.
Вечная память Google Reader или как дальше жить?

Как многие уже поняли из заголовка компания google решила закрыть сервис, который, как оказалось, многие любили
Google Reader, который относят к сервисам для "искушенных пользователей", как говорит aif.ru, прекратит свою работу 1 июля этого года. В Google объясняли, что сервис не пользовался популярностью, в интернет-тусовке – что компании нужно показать инвесторам способность закрывать неэффективные программы. И с грустью в голосе журналисты подвели итог эры RSS, с которой многие сегодняшние пользователи интернета вообще не знакомы.
Ярлыки:
новости,
google reader,
rss
23 января 2013 г.
Кофе в 8 утра
Приветствую друзья.
Сегодня не будет ничего информативного кроме моего недовольства, так что если кто-то ждет очередной FAQ по IT можете закрывать страницу.
Как некоторым из Вас известно живу я в городе "собирателе" Симферополе. Не смотря на быдло менталитет Симферопольцев, я все же люблю свой город и не хочу никуда уезжать, хотя предложений было не мало, но речь не об этом.
Сегодня не будет ничего информативного кроме моего недовольства, так что если кто-то ждет очередной FAQ по IT можете закрывать страницу.
Как некоторым из Вас известно живу я в городе "собирателе" Симферополе. Не смотря на быдло менталитет Симферопольцев, я все же люблю свой город и не хочу никуда уезжать, хотя предложений было не мало, но речь не об этом.
Ярлыки:
мысли в слух
22 декабря 2012 г.
Липкий запуск сервисов в Android-e.
В Android API есть такой абстрактный класс как Service. Он является наследником ContextWrapper-а, который в свою очередь является наследником Context-a. При некоторых допущениях можно относиться к сервисам как к "активити без UI" (хотя это не совсем правильно в деталях). Использовать сервис рекомендуется для задач не требующих прямого вмешательства пользователя.
В документации особо акцентируется внимание на том, что Service не является ни процессом, ни ниткой. Если сервис должен делать какую-то "тяжелую" работу, то нужно самому выносить ее в отдельный thread, чтобы не получить ANR (Application Not Responding).
Если делать свой thread лениво, то можно использовать готовый класс для асинхронной работы IntentService.
Про него нужно знать следующее:
Ярлыки:
android
4 декабря 2012 г.
Настраиваем Github в Intellij IDEA
На сегодняшний день существует пререлиз Intellij IDEA 12. В числе многих украшательств и фишечек JetBrains расширил поддержку популярного вершн контрола Git/Github. Мне очень захотелось попробовать поработать с Git, но помня нашу неудачную с Сашей попытку настроить Github проект из Intellij IDEA, я предварительно вооружился документацией на русском языке после чего начал настраивать Git репозиторий. Здесь я расскажу как у меня это получилось и на какие грабли наступил.
25 ноября 2012 г.
Перегрузка и переопределение: памятка
Override - переопределение - когда подкласс подсовывает свою реализацию метода вместо реализации в суперклассе. При вызове метода выбирается наиболее "специфическая" реализация, то есть реализация в подклассе, если она есть, приоритетнее реализации в суперклассе. В Java выбор выполняемого метода при переопределении происходит динамически (в рантайме) и не зависит от того, каким типом объявлена ссылка на объект:
Overload - перегрузка - объявление методов (или конструкторов) с одинаковыми именами, но разными с сигнатурами. Пример - все конструкторы любого класса, если их больше одного. В Java выбор выполняемого метода при перегрузке происходит статически (во время компиляции) и не зависит от типа объекта в рантайме:
public class TestOverriding {
private static class Parent {
String getName() { return "Parent"; }
}
private static class Child extends Parent {
@Override
String getName() { return "Child"; }
}
public static void main(String[] args) {
Parent child = new Child();
// Prints "Child"
System.out.println(child.getName());
}
}
Overload - перегрузка - объявление методов (или конструкторов) с одинаковыми именами, но разными с сигнатурами. Пример - все конструкторы любого класса, если их больше одного. В Java выбор выполняемого метода при перегрузке происходит статически (во время компиляции) и не зависит от типа объекта в рантайме:
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
public class TestOverloading {
static void classifyCollection(Collection c) {
System.out.println("Collection");
}
static void classifyCollection(Set s) {
System.out.println("Set");
}
public static void main(String[] args) {
Collection c = new HashSet
31 октября 2012 г.
Анонимные (anonimous) классы и слушатели событий (listeners)
Столкнулся с довольно глупой на мой взгляд ситуацией. Нужно из заинжекченного класса сказать внешнему что что-то произошло и пора забирать данные, в моем случае координаты GPS. Я решил задачу тем что передаю классу который инжекчу ссылку на класс в который инжекчу) Но это не совсем грамотно как я понял и все же рекомендуют написать своего слушателя. Вроде и JAVA CORE а я не в теме >< Кому не понятна суть слов Dependency_Injection тык на ссылку.
Итак начнем по порядку....
Итак начнем по порядку....
9 октября 2012 г.
Горячие клавиши Eclipse
Приветствую друзья. Все же я думал что пишу тут только для себя, но вдруг за последнюю неделю пришло несколько писем с вопросами куда я пропал? Забил ли я на блог? Нет. Просто устроился на работу и приходится в ускоренном темпе разбираться с Android OS. Да да, в скором будущем ожидайте статей по Android. Ну а пока что мне приходится отказаться от IDEA и работать в FREE SOFTWARE - Eclipse.
Как понятно из заголовка ниже hotkey которые я сам до сих пор не выучил > <
Как понятно из заголовка ниже hotkey которые я сам до сих пор не выучил > <
18 сентября 2012 г.
Как я начинал (часть 2)
Привет, друзья.
Вы все еще хотите заниматься java программированием? У Вас еще не отпало желание писать что-то больше чем переворачивание матриц и чат-серверное приложение на java core? Тогда эта тема для Вас.
В продолжении старой темы хотелось бы вновь поблагодарить Юрия за столь не малый вклад в мое обучение ;) и запись новых паблик лекций по основным j2ee технологиям. Не буду ничего выдумывать и заниматься рерайтом, далее текст автора роликов.
Вы все еще хотите заниматься java программированием? У Вас еще не отпало желание писать что-то больше чем переворачивание матриц и чат-серверное приложение на java core? Тогда эта тема для Вас.
В продолжении старой темы хотелось бы вновь поблагодарить Юрия за столь не малый вклад в мое обучение ;) и запись новых паблик лекций по основным j2ee технологиям. Не буду ничего выдумывать и заниматься рерайтом, далее текст автора роликов.
14 сентября 2012 г.
vCard Splitter by Leodestroy v 1.0
Итак представляю Ваше вниманию мое первое десктопное приложение - vCard Splitter.
vCard Splitter позволяет разбить общий файл визитки на структуру один файл = одна визитка.
Не смотря на простоту GUI приложение использует много поточность и валидацию считываемых данных, что исключает ошибки в ходе работы приложения или залипание UI.
Благодаря разработке на Java vCard Splitter является кросс платформенным десктопным приложением и будет работать как под системами Windows так и *nix.
Ну и конечно же все бесплатно в мир ;) eNjOy!
vCard Splitter позволяет разбить общий файл визитки на структуру один файл = одна визитка.
Не смотря на простоту GUI приложение использует много поточность и валидацию считываемых данных, что исключает ошибки в ходе работы приложения или залипание UI.
Благодаря разработке на Java vCard Splitter является кросс платформенным десктопным приложением и будет работать как под системами Windows так и *nix.
Ну и конечно же все бесплатно в мир ;) eNjOy!
1 сентября 2012 г.
Java 7 - обзор нововведений
Наткнулся на хабре на более менее подробную статью новшеств в java.Пускаем слюни.
В недавнем релизе Java появилось немало вещей, на которые стоит обратить внимание. Конечно же, все мы были огорчены переносом Project Lambda и некоторых прочих вкусняшек в JDK8, но тем не менее, и этот релиз привнёс что-то полезное в арсенал java-разработчика. Под катом можно найти более детальный обзор новшеств. По наиболее интересным из них, скорее всего, будут написаны дополнительные статьи с примерами использования.
Ярлыки:
java,
java 7,
Project Coin




