develNotes

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

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     Далее

21.11.2014

Расстояние Левенштейна - что это и как использовать.

Расстояние Левенштейна между двумя строками - это минимальное количество операций вставки одного символа, удаления одного символа и замены одного символа на другой, необходимых для превращения одной строки в другую [Википедия]. Например, есть строки:

"text" и "text!"

Для того чтобы первую строку превратить во вторую, нужно добавить к ней символ "!", и наоборот - для того чтобы превратить вторую в первую - нужно удалить из нее восклицательный знак. Иными словами, нужно выполнить одну операцию. Это значение и называют расстоянием Левенштейна. Зачем используется такое понятие? Расстояние Левенштейна имеет множество практических применений. Например - различные утилиты, которые предназначены для мержа файлов исходного кода, утилита для сравнения текстов diff в Linux, нестрогое сравнение текстов - когда нужно "примерно" сравнить две порции текстовых данных, и прочее.


29.10.2014

Использование HTML5 для разработки мобильных приложений - плюсы и минусы подхода.

Одним из критериев успешности мобильного приложения является доступность вашей разработки для целевой аудитории, вне зависимости от того, какую платформу используют пользователи - Android, IOS, Windows Phone или что-то еще. Как известно, существуют различные средства, которые служат для создания мобильных приложений, используя HTML5. Одним из представителей таких средств является PhoneGap. PhoneGap - бесплатный open-source фреймворк для создания мобильных приложений, созданный Nitobi Software. Позволяет создать приложения для мобильных устройств используя JavaScript, HTML5 и CSS3, без необходимости знания «родных» языков программирования (например, Objective-C), под все мобильные операционные системы (iOS, Android, Bada и т. д.). Готовое приложение компилируется в виде установочных пакетов для каждой мобильной операционной системы [Википедия]. Какие есть преимущества и недостатки у подобного подхода к разработке мобильных приложений и в каком случае нужно использовать такие инструменты? 

Теги: html5 mobile     Далее