Pull to refresh
30
0
Илья Ермолов @FlashXL

User

Send message

Google упрощает контрактное программирование

Reading time1 min
Views2.6K
Google выпустил открытую библиотеку Contracts for Java, которая упрощает реализацию методов контрактного программирования в Java. С помощью библиотеки Contracts for Java предусловия, постусловия и инварианты можно добавлять в Java как булевые выражения внутри аннотаций.

Как сказано в официальном анонсе, библиотека разработана двумя программистами Google в свободное от основной работы время (20% на личные проекты) и основана на Modern Jass и сделана под впечатлением от языка Эйфель, в котором впервые был реализован метод контрактного программирования.
Читать дальше →

Разоблачение алгоритмов растеризации шрифтов (2/2)

Reading time14 min
Views10K
(вторая часть перевода статьи Разоблачение алгоритмов растеризации шрифтов)

Linux


Наследуя худшее


Windows растеризует шрифты плохо, Linux ещё хуже. Во всех Linux-системах, которые я видел, используется FreeType [10] Дэвида Тёрнера, Роберта Вильгельма и Вернера Лемберга. Это отличная библиотека, но способ её использования, к сожалению, нельзя назвать удачным. Типичный скриншот Linux выглядит так:



Вот полный скриншот:
ссылка

Сразу заметна проблема — чёрные пятна в скругленных углах, образовавшиеся в результате сглаживания. Вцелом, можно сказать, что косые штрихи выглядят тяжелее чем вертикальные, что в регультате производит впечатление «грязи». Вы можете возразить, что FreeType и Linux могли бы использовать схожую с ClearType субпиксельную растеризацию, но по мне это не даёт заметных преимуществ.
Читать дальше →

Создание m4b из mp3 аудиокниг для ipod

Reading time3 min
Views18K
Захотелось давеча прослушать аудиокнижку одну, проблема в том, что прослушать ее захотелось на ipod, а в m4b формате нигде найти не смог, только mp3.

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

Суть в том, что .m4b это файл AAC в контейнере mp4, но с закладками и переименованный. Следовательно, необходимо все mp3 перегнать в aac и сгенерировать файл закладок (chapters), в quicktime формате, после чего запихнуть все это дело в mp4 контейнер.
Читать дальше →

Автоматический контроль структуры класса

Reading time4 min
Views5K
imageУ каждой компании есть свой стандарт оформления кода и важно придерживаться его. Встроенные в IDE форматеры кода решают это задачу частично, так как они в основном позволяют лишь добиться простого выравнивая кода. Помимо этого хочется еще и порядка в последовательности объявления как полей, методов, так и вложенных классов. Причин, по которым код-стандарт не соблюдается масса: программист перед отправкой кода в репозиторий может не заметить отклонение от стандарта; новый разработчик недостаточно внимательно прочитал документ; в погоне за хот фиксом о формате забыли; либо из-за банальной усталости или лени программиста; автоматического рефакторинга и так далее. Регулярный код-ревью не решает суть проблемы, так как занимает слишком много времени и тормозит разработку — нужна автоматизация проверки соответствия кода в момент его написания!

Частые проблемы:
  • конструктор неожиданно появляется в середине класса;
  • внутренний класс объявлен где-то в середине внешнего класса;
  • абстрактный метод объявлен где-то в середине большого абстрактного класса;
  • @Autowired метод тоже расположен где угодно но только не на самом видном месте;
  • статические билдер методы разбросаны по коду класса;
  • поле класса затерялось где-то между внутренним классом и методами.

Надоело такое терпеть в коде?
Читать дальше →

Творим оригинальный подарок при помощи химии физики и электроники: часть 3

Reading time6 min
Views27K
Третья, заключительная часть моей статьи о создании светящегося кристаллического сувенира. В ней описывается программная часть, то бишь прошивка микроконтроллера ATTiny13 из славного рода AVRок.
Читать дальше →

OpenID, OAuth и другие плюшки

Reading time10 min
Views24K

Зачем нужен OpenID



Вот бывает так, заходишь на сайт любимый, а там ссылка на другой сайт, а там статья ну очень интересная и главное – полезная – и хочется добавить комментарий, типа «Молодцы!» и чтобы добавить комментарий, нужно зарегистрироваться, а чтобы зарегистрироваться нужно ввести «Имя», «Фамилия», «Логин», «Email», «Email еще раз», «Пароль», «Снова Пароль», «Прочитал правила и согласен со всем что тут будет происходить» и «Капчу». И жмакаешь «Зарегистрироваться», а тут бац – «Логин» — занят, и поля «Пароль», «Снова Пароль», «Капча» — стерты. Ну вот так. Вводишь другой свой логин (который второй, и не главный и не любимый) и снова пароль, снова снова пароль (постите) и капчу, и бац – всё ок, только забыл снова поставить галку «Прочитал правила...». Ну ладно, прошел еще раз круги ада, на мыло вышло письмо, активировал аккаунт, так, а где там была статья, да и ну их, не молодцы они, ну т.е. молодцы ну и хрен с этим, знают и так.
Проведите эксперимент, в вашей любимой почте сделайте поиск по слову «activate» — вот примерно столько вы регистрировались на сайтах.
А с другой стороны думаешь, а давайте упростим, и делаешь простое добавление комментария: «Имя», «Email», «Сообщение» — причем «Email» можно не вводить. Через 3 месяца заходишь, а там – СПАМ! Ладно, почистил – и ноль эффекта, спам продолжает, добавил капчу – ну вроде ок, но потом снова как-то они ее обходят. И внимание(!) – вводим регистрацию… Ой!
Но есть (УРА!) – OpenID.
Читать дальше →

Бестселлер Amazon'а «Машина смерти» лицензирован под Creative Commons

Reading time2 min
Views961
imageЭто случалось раньше с музыкальными альбомами, когда выкладывание произведения открытый доступ не вредило текущим продажам товара. Авторы Машины смерти чётко поняли это. Они объяснили почему антология научно-фантастических рассказов о людях, которые знают как они умрут (но не знают когда), была сделана доступной в сети по CC BY-NC-ND:

Почему мы делаем это? Разве мы не беспокоимся о том, что это повредит продажам этой книги?

Одним словом: нет. Вы доказали снова и снова, что вы готовы платить за контент, который вы находите ценным. Вы показали, что вы готовы делиться материалом, в который вы влюбились. И мы стремимся к тому, чтобы гарантировать, что вы можете познакомиться с нашим произведением вне зависимости от того есть у вас возможость купить книгу или нет; вне зависимости от того живёте ли вы в стране куда доставляет Amazon или нет; вне зависимости от того есть у ли в вашей жизни место для кучи бумаги или нет.

Пожалуйста, скачивайте, читайте, копируйте и наслаждайтесь!


Кроме того, некоторые отдельные рассказы выпущены под лицензией CC BY-NC-SA
Читать дальше →

Разработка web-приложений на языке Common Lisp (часть третья)

Reading time6 min
Views4.1K
Данный обзор является небольшим путеводителем для тех, решился (или решается) доверить этому чудесному языку будущее своего стартапа. Несмотря на то, что основной акцент будет ставиться на web-разработке, я постараюсь осветить также и более общие темы, так или иначе связанные с Common Lisp. Материал почерпнут из собственного опыта разработки web-сервиса AlterMoby.

Третья часть этого обзора будет посвящена web-серверу Hunchentoot. Рассмотрим его архитектуру и базовые возможности. Кроме того, затронем некоторые смежные вопросы, в частности, генерацию HTML/XML.

image
Читать дальше →

Что такое Хабрахабр?

Reading time1 min
Views12K
Сегодня мы приготовили нечто особенное – выпуск Рунетологии с Денисом Крючковым, создателем Хабрахабра.

Не ждите откровений и раскрытия хабрасекретов. Программа интересна другим – впервые вы увидите, как Хабр видит его администрация. Какие у автора представления о собственном детище, каким бы он хотел его видеть, и как у Дениса складываются отношения с его вполне самостоятельным творением.

Ведь как и все социальные-медиа последних лет, Хабрахабр был создан случайно, рос помимо воли авторов и в общем стал тем, чего никто не ожидал. Это хорошо видно по программе — каждый раз, когда Крючков отвечает «не знаю, как-то так получилось».

Так что же вообще получилось? Коллективный блог? Новостной сайт? Социальное медиа? Социальная сеть? MMORPG?

Смотрите и решайте сами.



Напоминаем, что видеоверсия программы Рунетология выходит с лета 2010 года при поддержке компании StartupIndex. Все выпуски доступны на нашем сайте в специальном разделе.

Загрузка классов в Java. Теория

Reading time4 min
Views201K


Одной из основных особенностей платформы Java является модель динамической загрузки классов, которая позволяет загружать исполняемый код в JRE не перезагружая основое приложение. Такая особенность широко используется в серверах приложений, получивших последнее время высокую популярность.

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

Читать дальше →

Вувузела фильтр

Reading time2 min
Views3.4K
В этом посте хочу рассказать, о том, как справиться с «роем мух», как его называет aguares, в трансляциях с Чемпионата Мира по футболу 2010. Звук этот появляется из противных южноафриканских дудок — название которым — Вувузелы.

Постановка инженерной задачи следующая:
Отфильтровать частоты звучания Вувузел в реальном времени из аудио потока онлайн трансляции, не применяя записи сигнала на жесткий диск.

Данная проблема разбивается на следующие подзадачи:
1) Считать поток аудио до вывода его на колонки
2) Произвести подавление основных частот вувузел
3) Подать обработанный звук на аудио выход
+ все это в режиме реального времени.

Из методов цифровой обработки аудио сигналов, доступных для Windows 7, мною была выбрана концепция VST.
Читать дальше →

Torrent-Search — сервис быстрого поиска торрентов

Reading time1 min
Views116K


Здравствуйте, Хабравчане.
Однажды мне пришла идея создать сайт для поиска торрентов. Ведь, очень не удобно искать, по очереди, на большом количестве трекеров.
Итак, представляю Вам — Torrent-Search.
Читать дальше →

Еще один сервис поиска иконок

Reading time1 min
Views7.9K
В данном русском ресурсе (iconsearch.ru) приведено достаточно много иконок (133673 штук в png-формате), причем на различных фонах (белый, прозрачный) и разных размеров. Иконки довольно симпатичные. Все они разбиты по тегам и наборам. Теги позволяют еще быстрее найти нужную Вам иконку. Теги можно добавлять самому (без регистрации, с применением AJAX). Также присутствует облако тегов. Каждая иконка на этом сайте защищена одной из списка лицензий. Также есть на сайте возможность разработки уникальных иконок. Сайт был создан в 2007, однако на Хабре про него ничего нет, кроме нескольких комментариев.

Настраиваем Tomcat для работы с JSF2 и другими компонентами Java EE 6

Reading time7 min
Views20K
Данная статья описывает по шагам как настроить Tomcat (на текущий момент версия 6.0.26) на работу с разными компонентами Java EE 6.Вы можете пропустить чтение этой статьи и сразу получить настроенный Tomcat и пример приложения.
подробности

Mantis + Subversion у себя на компьютере с Windows XP. Пошаговая инструкция для удобной организации работы с кодом

Reading time6 min
Views5.7K

Исторически сложилось, что багтрекер в нашей команде – это Mantis. Для работы над ошибками очень хорошая и простая в обучении система. Буквально садись и работай. Но для удобной организации работы ей явно не хватает связки с Subversion. В связке Subversion+Mantis помогают организовать работу с кодом небольшой команды программистов. Более подробно про организацию работы у нас я описал в прошлой статье.
А сейчас давайте поговорим, как установить Subversion у себя на компьютере и связать его с Mantis на сервере.
Читать дальше →

Java сертификация — прохождение SCJP и SCBCD

Reading time8 min
Views84K
Не нашел на хабре статей, в которых бы авторы описывали сертификации по Java и делились своим опытом подготовки и ощущениями от сдачи.
В некоторой степени хотел бы заполнить пробел этой статьей. Под катом – мое мнение по вопросу – сдавать или не сдавать сертификации, краткий обзор сертификаций по Java, а так же собственный опыт и ощущения от регистрации, подготовки и сдачи Java сертификаций SCJP и SCBCD.
читать далее

Корпоративный портал Jahia – обзор архитектуры (часть 1)

Reading time13 min
Views7.5K
В статье представлен высокоуровневый обзор архитектуры корпоративного портала Jahia.

Jahia – одна из немногих open source систем, которая объединяет Java EE портал и управление
контентом в один продукт. CMS является законченным решением, представляющим альтернативу порталам
от крупных компаний.

Обзор призван помочь читателю разобраться с различными компонентами системы и связями между ними.
Также данный обзор может послужить основой для понимания исходного кода системы, который является
свободно доступным.

Читать дальше →

Учим английский по-новому

Reading time2 min
Views4.2K
Kimir.org

Суть метода состоит в прослушивании аудио фрагментов современных фильмов и сериалов.
Подразумевается, что пользователь сайта не достаточно «силен», чтобы смотреть английские фильмы с английскими субтитрами или без субтитров вовсе. В тоже время, желательно знание основ языка.

Читать дальше →

Google Collections LIbrary 1.0 final

Reading time1 min
Views2.7K
Наконец-то вышла финальная версия Google Collections Library.Это библиотека коллекций, по сути дополняющая стандартные коллекции.
Что есть в Google Collections?
  • Дополнительные типы коллекций Multimap, Multiset, BiMap
  • Также есть неизменяемые типы коллекций, которые удобны в многопоточных программах
  • Классы утилит для Списков, Множеств и Карт
  • И многое другое…

Советую использовать эту библиотеку, для того чтобы не создавать свои велосипеды.
Видеоуроки по использованию библиотеки
ссылка на проект

Java по-русски. Часть первая: Книги

Reading time2 min
Views497K
Не так давно я проводил опрос «Какие материалы о Java вас интересуют на русском языке?» среди посетителей Хабра. Вторым этапом моего исследования будет обзор существующих русско-язычных ресурсов.

Книги


За 2009 на Ozon.ru можно найти 8 книг по Java (всего за последние 3 года их вышло 22 — примерно по 7 в год, на books.ru набор примерно такой же, так что наша выборка довольно репрезентативна). Посмотрим, что это за книги?
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity