develNotes

/*айтишные заметки*/

25.04.2015

Spring Security и Mysql - практический пример.

UPDATE: Возможно вам будет интересен пример использования Spring Security 4 и AngularJS.

Я уже упоминал про JavaEE фреймворк Spring Security и приводил простой пример его использования. Этот пример включает в себя создание веб приложения с двумя страницами - страница логина и закрытая страница. Для авторизации, как ясно, там используется Spring Security. Однако имя пользователя и пароль (точнее SHA-1 хэш) в этом примере хранятся в XML файле настройки контекста Spring Security. Понятно, что в реальных задачах данные пользователя, как и его роли, хранятся в базе данных. 

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

Итак, как можно связать авторизацию с помощью Spring и Mysql. Сделать это можно немного по разному, посмотрим на один из способов. Первым делом установим Mysql и создадим тестовую БД, в которой будет одна таблица. В таблице содержится имя пользователя, название его роли в системе, и хэш пароля. Обычно в БД хранят и другую информацию - например дату, до которой аккаунт активен и пр. Но в этом примере этого не будет. 


18.03.2015

Microsoft developer tour в Спб - впечатления.

Вчера в Санкт-Петербург приехал вот такой трейлер. Технологическая экспедиция, которую организует Microsoft стартовала в городе на Неве - http://events.techdays.ru/msdevtour/saint-petersburg. Итак, мне удалось сходить на это очень интересное мероприятие, о чем я и расскажу в этом посте =). 

В Санкт-Петербурге, уже несколько дней стоит отличная погода, что очень радует его жителей, а также конкретно меня, когда я отправлялся в конгресс холл "Петроконгресс", около которого был припаркован тот самый трейлер Microsoft. То, что было внутри трейлера доступно было избранным, которые получили билеты для прохода туда. Впрочем, стать избранным было не так сложно, достаточно было более активно участвовать в конференции. 

Теги: msdevtour events     Далее

13.03.2015

Конвертация Apple binary plist в XML - BPlist2Xml

Сeгодня получил от Google письмо счастья, о том что Google Code в скором времени полностью прекратит свое существование, с рекомендацией перенести свои проекты куда-нибудь в другое место, например GitHub. Давным давно я сделал один проект, который сейчас казалось бы некуда деть, но он находится на Google Code. Хотелось бы сохранить этот код, поэтому решил перекинуть его на BitBucket. 

BPlist2Xml - это конвертер формата Property List, который используется продуктами Apple для хранения различных настроек и т.п. Написана эта программа, прости господи, на pascal (использовался Free Pascal). Суть в том, что документ формата Property List бывает двух типов - обычный XML документ и сжатый бинарный формат. Для того, чтобы читать и редактировать последний, есть специальные редакторы. Если кому-нибудь, неизвестно для чего, понадобиться производить манипуляции с бинарным plist используя например Delphi, эта реализация - единственная, насколько мне известно, на этом языке. 

Скачать (исходный код и бинарники)


04.01.2015

Начинаем год правильно. Подборка лучших онлайн курсов в области Computer Science.

Начало нового года - отличное время для того чтобы начать/продолжить изучать что-нибудь! Не буду рассказывать про множество доступных ресурсов, где можно бесплатно пройти тот или иной курс. Надеюсь что вы знаете про их наличие =). Приведу небольшую подборку онлайн курсов, которые мне показались особенно интересными по разным критериям - университету, теме, наличию того или иного вида контента и пр. Выбранные темы будут интересны как специалистам в области Computer Science, так и тем кто просто интересуется этой обширной областью знаний.  Я приведу шесть курсов (все курсы на английском) - три из них на сайте Coursera.org, три - MIT OpenCourseWare

Итак, это курсы с Coursera.org и MIT OpenCourseWare. Первый ресурс использует модель, при которой курсы, как правило, имеют временные рамки. Это подталкивает более активно участвовать в процессе обучения, так как для выполнения тестов, просмотра видеолекций - установлены дедлайны.  Кроме того, все курсы, которые выложены там, адаптированы для онлайн обучения. То есть, в отличие от ресурса MIT, это не записи "офлайн" лекций. На Coursera предусмотрены различные тесты или практические задания, которые нужно выполнять по ходу прохождения курса. В тех курсах Coursera, которые я приведу здесь - предлагается получить свидетельство/сертификат о завершении курса. 

MIT OpenCourseWare предлагает огромное количество курсов, для некоторых есть видеолекции, а для некоторых нет. В тех курсах, которые я привожу, имеются видеолекции. Здесь нет временных рамок, для кого-то это может быть минусом, а для кого-то плюсом. Кроме того, здесь видеолекции -  это записи лекций из университета, что весьма интересно. 

Теги: academic lifehack     Далее

27.12.2014

С новым годом! И немного анимации с помощью HTML5 Canvas.

 

Хочу привести простой пример использования возможностей рисования и анимации с помощью HTML5. Собственно, то, что получится в итоге, вы можете наблюдать чуть выше (разумеется, если вы не отключили JavaScript). Для того, что бы получить такой результат -  будем использовать элемент canvas, который включен в спецификацию HTML5, и предназначен для рисования.

Первым делом нужно создать страницу и поместить на нее элемент canvas: 

<!DOCTYPE html>
<html>
<body>
  <canvas id="myCanvas" width="200" height="200"></canvas>
  <script>
  </script>
 </body>
</html>

По умолчанию, размер области для рисования элемента canvas - 300px x 150px. Поскольку нам хватит и меньше - задаем размер 200px x 200px.  Теперь нужно написать скрипт, который будет рисовать нашу новогоднюю елку. Соответственно, весь дальнейший код добавим в тег <script> на только что созданной странице. Начнем с рисования самой елки:

Теги: html5 web javascript     Далее

16.12.2014

Окей Google. Используем Custom Search API в Java.

Google Custom Search - это система пользовательского поиска, которая позволяет создавать вам собственную "поисковую машину". Одно из распространенных применений Google Custom Search, это поиск по вашему сайту. Если вы владелец сайта и вы решили сделать поиск по нему с помощью Google, вы можете создать свою систему пользовательского поиска, указать Google, что искать нужно только на вашем сайте, а кроме того - доступны другие настройки. Однако это вовсе не единственное назначение и возможное применение Google Custom Search. Поиск может производиться не только на вашем сайте - это может быть заданный по определенным правилам список сайтов, или же вообще весь веб. Использовать Custom Search можно по разному - существует несколько вариантов API. В этой статье я покажу, как использовать Google Custom Search из Java приложения, используя REST API. Целью этого примера будет: создать Java приложение, которое может выполнить поиск в Google с помощью Custom Search API и получить список ссылок из результатов поиска. 

1. Создаем свою систему пользовательского поиска. 

Первым делом нужно создать вашу систему поиска. Для этого перейдите к управлению системами пользовательского поиска - https://www.google.com/cse. Итак, создаем новую систему поиска, кликнув "Add":

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

Теги: api google java     Далее